0

グリッド ビューに .xml レイアウトを適用したい...

これは gridlayout.xml です。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Large Text"
    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

そして、主な活動で(私はフラグメントを使用しています):

public class Grid extends Fragment {

private View vi;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle saved) {

    View c = inflater.inflate(R.layout.choose, container, false);
    vi = c;

    GridView gridView = (GridView) vi.findViewById(R.id.gridView1);
    String[] numbers = { "A", "B", "C", "D", "E", "F", "G",
            "H", "I" };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity()
            .getApplicationContext(), 
            R.layout.gridlayout,
            numbers);

    gridView.setAdapter(adapter);

    return c;
}

しかし、プログラムはエラーを出力します

AndroidRuntime(4302): java.lang.IllegalStateException: ArrayAdapter requires
the resource ID to be a TextView

私が試してみました

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity()
            .getApplicationContext(), android.R.layout.simple_list_item_1,
            numbers);

そして、それはうまくいきました....

私の間違いを助けて指摘してください!! ありがとう!

4

1 に答える 1

0

最初に API ドキュメントを読むことをお勧めします!

http://developer.android.com/reference/android/widget/ArrayAdapter.html

このコンストラクタを使用する必要があります

ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
        R.layout.gridlayout, //layout ID
        R.id.textView1, //the id of textView in the layout
        numbers);
于 2013-02-26T05:29:22.847 に答える