1. ホーム
  2. アンドロイド

ArrayAdapter は、リソース ID が TextView であることが必要です。

2022-02-10 05:19:11

Error: java.lang.IllegalStateException: ArrayAdapter は、リソース ID が TextView である必要があります。

報告されたエラーの理由。

以下のコードで配列アダプタを書き込むと発生します。

public class ArrayAdapterActivity extends Activity {



    @InjectView(R.id.lv)



    ListView lv;






    @Override



    protected void onCreate(Bundle savedInstanceState) {



        super.onCreate(savedInstanceState);



        setContentView(R.layout.activity_array_adapter);



        ButterKnife.inject(this);






        String[] objects = {"The moonlight in front of the window", "Suspicious of the frost on the ground", "Raising my head to look at the moon", "Thinking of my hometown"};



        lv.setAdapter(new ArrayAdapter<String>(this, 
 R.layout.item_tv
, objects));



    }



}

解決策

レイアウトファイルのルートであるitem_tvを、以下のようにTextViewに変更します。

<TextView xmlns:android="http://schemas.android.com/apk/res/android"



    android:layout_width="match_parent"



    android:layout_height="50dp"



    android:orientation="vertical"



    android:gravity="center_vertical"



    android:text="text data"



    android:textSize="22sp"



    >



</TextView>