0

アダプターを ListFragment に設定しようとしていますが、何をしても常に「空のリスト」として表示されます。アダプターを設定する直前に、studentList をインスタンス化しています。私が見逃している非常に単純なものがあるに違いありません。私のコードが与えられたstudentListを表示するように、これをどのように書くことができますか?

メイン画面.xml

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

    <TextView
            android:id="@android:id/empty"
            android:layout_gravity="center"
            android:text="@string/empty_list"
            style="@style/font_large"/>

    <ListView
            android:id="@android:id/list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

</LinearLayout>

MainScreenFrag.java

public class MainScreenFrag extends ListFragment {

    public final static String TITLE = "Student List";
    public final static String TAG = "MainScreenFrag";

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        String[] studentList =  {"me", "you", "everybody", "nobody","some people", "most people", "just me", "ok you too"};

        setListAdapter(new ArrayAdapter<String>(
                getActivity(),
                android.R.layout.simple_list_item_1,
                studentList));
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    
        return inflater.inflate(R.layout.main_screen, container, false);
    }

}

4

2 に答える 2

-1

その主な理由は、リスト アダプターの ID を指定していないためです。

ListView lv = (ListView) findViewById(R.id.list);
ArrayAdapter<String> arrayAdapter =      
    new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, studentList);
    lv.setAdapter(arrayAdapter); 

メソッドは冗長に見えますが、これは機能するはずです。

于 2013-08-09T15:59:43.653 に答える