我可以設法制作一個帶有相同圖標的listfragment。但似乎我不能用不同的圖標製作該列表。所以列表結果將是不同項目列表的不同圖標。我試着用它。當我試圖建立它。它顯示沒有錯誤。但是當我運行它。其正義的力量關閉。這裏是我的logcat。ListFragment帶圖標
04-03 16:49:13.513:W/dalvikvm(9236):線程ID = 1:螺紋與未捕獲的異常退出(組= 0x40a71930)
04-03 16:49:13.602:E/AndroidRuntime (9236):致命例外:main
04-03 16:49:13.602:E/AndroidRuntime(9236):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.surat.pendek/com.surat.pendek。 utama}:java.lang.RuntimeException:你的內容必須有一個ListView的id屬性是'android.R.id.list'
04-03 16:49:13.602:E/AndroidRuntime(9236):at android.app .ActivityThread $ H.handleMessage(ActivityThread.java:1234)
04-03 16:49:13.602:E/Android運行時(9236):在android.os.Handler.dispatchMessage(Handler.java:99)
04-03 16:49:13.602:E/AndroidRuntime(9236):at android.os.Looper.loop(Looper.java :137)
04-03 16:49:13.602:E/AndroidRuntime(9236):at android.app.ActivityThread.main(ActivityThread.java:5041)
04-03 16:49:13.602:E/AndroidRuntime (9236):了java.lang.RuntimeException:通過導致您的內容必須有一個ListView其id屬性爲「android.R.id.list」
這裏是一個擴展listfragment我的樣本片段,該片段也包含適配器:
public class SampleListFragment extends ListFragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.list, null);
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
SampleAdapter adapter = new SampleAdapter(getActivity(), null);
for (int i = 0; i < 20; i++) {
adapter.add(new SampleItem("Sample List", android.R.drawable.ic_menu_search));
}
setListAdapter(adapter);
}
private class SampleItem {
public String tag;
public int iconRes;
public SampleItem(String tag, int iconRes) {
this.tag = tag;
this.iconRes = iconRes;
}
}
public class SampleAdapter extends ArrayAdapter<SampleItem> {
private final Context context;
private final String[] values;
public SampleAdapter(Context context, String[] values) {
super(context, R.layout.row);
this.context = context;
this.values = values;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
}
ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
icon.setImageResource(getItem(position).iconRes);
TextView title = (TextView) convertView.findViewById(R.id.row_title);
title.setText(getItem(position).tag);
String surat = title.getText().toString();
if (surat.equalsIgnoreCase("Huruf Hijaiyah")) {
icon.setImageResource(R.drawable.aien);
} else
if (surat.equalsIgnoreCase("About")) {
icon.setImageResource(R.drawable.alief);
} else
if (surat.equalsIgnoreCase("Surat+arti")) {
icon.setImageResource(R.drawable.ba);
} else
if (surat.equalsIgnoreCase("Surat+latin")) {
icon.setImageResource(R.drawable.emo_im_angel);
} else
{
icon.setImageResource(R.drawable.emo_im_happy);
}
return convertView;
}
}
}
,這裏是我的片段擴展listfragment:
public class MenuFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.list, null);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
String[] surat = getResources().getStringArray(R.array.surat_pendek);
ArrayAdapter<String> sampleAdapter = new ArrayAdapter<String>(getActivity(),
R.layout.row, R.id.row_title, surat);
setListAdapter(sampleAdapter);
}
您爲「ListView」定義了什麼ID? – GrIsHu