我正在尝试将适配器设置为ListFragment,但无论我做什么,它总是显示为“空列表”。我在设置适配器之前就实例化了studentList。必须有一些我很想念的简单事物。我怎么写这个,以便我的代码显示给定的studentList?
主屏幕
<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);
}
}
答案 0 :(得分:0)
你没有打电话
super.onViewCreated(view, savedInstanceState);
在onViewCreated
尝试一下
答案 1 :(得分:-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);
这应该有效,尽管这种方法似乎是多余的。