前提・実現したいこと
Android Studioで単語帳を作っています。
今の段階では、MySQL通じて単語データが生成されそのデータをListViewに表示したいと思っています。
ArrayAdapterを生成しようとしていますが、リソースIDが合わなさそうです。
どんなリソースIDを書いたら、正常にListViewにデータが表示されるんですか?
発生している問題・エラーメッセージ
2018-11-20 10:44:49.620 5628-5628/jp.ac.jec.cm0207.projecttest E/ArrayAdapter: You must supply a resource ID for a TextView
2018-11-20 10:44:49.620 5628-5628/jp.ac.jec.cm0207.projecttest D/AndroidRuntime: Shutting down VM
2018-11-20 10:44:49.624 5628-5628/jp.ac.jec.cm0207.projecttest E/AndroidRuntime: FATAL EXCEPTION: main
Process: jp.ac.jec.cm0207.projecttest, PID: 5628
java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:371)
at android.widget.AbsListView.obtainView(AbsListView.java:2362)
at android.widget.ListView.makeAndAddView(ListView.java:1970)
at android.widget.ListView.fillDown(ListView.java:704)
at android.widget.ListView.fillFromTop(ListView.java:765)
at android.widget.ListView.layoutChildren(ListView.java:1744)
at android.widget.AbsListView.onLayout(AbsListView.java:2161)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1730)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1496)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:443)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:724)
at android.view.View.layout(View.java:17523)
at android.view.ViewGroup.layout(ViewGroup.java:5612)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2342)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2069)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1246)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6301)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:388)
エラーメッセージ
FATAL EXCEPTION: main
Process: jp.ac.jec.cm0207.projecttest, PID: 5628
java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
〜
java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.TextView
該当のソースコード
public class VocabularyActivity extends AppCompatActivity { private ArrayList<Card> ary = new ArrayList<>(); private ArrayAdapter<RowModel> adapter; class RowModelAdapter extends ArrayAdapter<RowModel> { public RowModelAdapter(@NonNull Context context) { super(context, R.layout.row_item); } @NonNull @Override public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { RowModel item = getItem(position); if (convertView == null) { LayoutInflater inflater = getLayoutInflater(); convertView = inflater.inflate(R.layout.row_item,null); } if (item != null) { TextView txtStrEng = (TextView)convertView.findViewById(R.id.textStrEng); if ( txtStrEng != null ) { txtStrEng.setText(item.getRowEng()); } TextView txtStrJpn = (TextView)convertView.findViewById(R.id.textStrJpn); if ( txtStrJpn != null ) { txtStrJpn.setText(item.getRowJpn()); } } return convertView; } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_vocabulary); Button btnEdit = (Button)findViewById(R.id.btnEdit); btnEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(VocabularyActivity.this, EditActivity.class); startActivity(intent); } }); CardSQLiteOpenHelper helper = new CardSQLiteOpenHelper(this); helper.getAllCard(ary); adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, ary); ListView listView = (ListView)findViewById(R.id.listViewV); listView.setAdapter(adapter);
試したこと
リソースIDをandroid.R.layout.simple_list_item_1時はデータのアドレスみたいなものしか表示されませんでした。
他にできそうなものを書いたら上記のエラーが出ました。
補足情報(FW/ツールのバージョンなど)
Android Studioは最新バージョン。
apache, php, MySQL 使用中。
あなたの回答
tips
プレビュー