Android 带有图标的ListFragment
我可以设法制作一个具有相同图标的listfragment。但似乎我不能用不同的图标列出这个列表。因此,对于不同的项目列表,列表结果将是不同的图标。我试着用它。当我试图建造它的时候。它没有显示错误。但当我运行它时。它的正义力量关闭了。这是我的日志 04-03 16:49:13.513:W/dalvikvm(9236):threadid=1:线程以未捕获异常退出(组=0x40a71930)Android 带有图标的ListFragment,android,android-layout,android-listview,android-listfragment,android-adapterview,Android,Android Layout,Android Listview,Android Listfragment,Android Adapterview,我可以设法制作一个具有相同图标的listfragment。但似乎我不能用不同的图标列出这个列表。因此,对于不同的项目列表,列表结果将是不同的图标。我试着用它。当我试图建造它的时候。它没有显示错误。但当我运行它时。它的正义力量关闭了。这是我的日志 04-03 16:49:13.513:W/dalvikvm(9236):threadid=1:线程以未捕获异常退出(组=0x40a71930) 04-03 16:49:13.602:E/AndroidRuntime(9236):致命异常:main 04-
04-03 16:49:13.602:E/AndroidRuntime(9236):致命异常:main
04-03 16:49:13.602:E/AndroidRuntime(9236):java.lang.RuntimeException:无法启动活动组件信息{com.surat.pendek/com.surat.pendek.utama}:java.lang.RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView
04-03 16:49:13.602:E/AndroidRuntime(9236):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-03 16:49:13.602:E/AndroidRuntime(9236):在android.os.Handler.dispatchMessage(Handler.java:99)上 04-03 16:49:13.602:E/AndroidRuntime(9236):在android.os.Looper.loop(Looper.java:137)上 04-03 16:49:13.602:E/AndroidRuntime(9236):在android.app.ActivityThread.main(ActivityThread.java:5041)
04-03 16:49:13.602:E/AndroidRuntime(9236):原因:java.lang.RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView 这是我扩展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;
}
}
公共类SampleListFragment扩展ListFragment{
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
返回充气机。充气(R.layout.list,空);
}
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
SamDucceApter adapter=新的SamDucceApter(getActivity(),null);
对于(int i=0;i<20;i++){
add(新的SampleItem(“samplelist”,android.R.drawable.ic_menu_search));
}
setListAdapter(适配器);
}
私有类样本项{
公共字符串标签;
公共国际学院;
公共样本项(字符串标记,int-iconRes){
this.tag=tag;
this.iconRes=iconRes;
}
}
公共类SamdCapter扩展了ArrayAdapter{
私人最终语境;
私有最终字符串[]值;
公共SampleCapter(上下文,字符串[]值){
超级(上下文,右布局,行);
this.context=上下文;
这个值=值;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.row,null);
}
ImageView图标=(ImageView)convertView.findViewById(R.id.row_图标);
icon.setImageResource(getItem(position).iconRes);
TextView title=(TextView)convertView.findViewById(R.id.row\u title);
title.setText(getItem(position.tag);
字符串surat=title.getText().toString();
if(同等信号情况(“Huruf Hijaiyah”)){
icon.setImageResource(R.drawable.aien);
}否则
if(保险等信号情况(“关于”)){
icon.setImageResource(R.drawable.alief);
}否则
if(surat.equalsIgnoreCase(“surat+arti”)){
icon.setImageResource(R.drawable.ba);
}否则
if(surat.equalsIgnoreCase(“surat+拉丁语”)){
icon.setImageResource(R.drawable.emo\u im\u天使);
}否则
{
icon.setImageResource(R.drawable.emo_im_happy);
}
返回视图;
}
}
}
这是我扩展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);
}
公共类MenuFragment扩展了ListFragment{
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
返回充气机。充气(R.layout.list,空);
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
字符串[]surat=getResources().getStringArray(R.array.surat_pendek);
ArrayAdapter SamdAccepter=新的ArrayAdapter(getActivity(),
R.layout.row,R.id.row_title,surat);
setListAdapter(SamdCapter);
}
有点晚了,但我希望能有所帮助
正如logcat所说:您的内容必须有一个id属性为“android.R.id.list”的ListView
似乎您有一个显式的xml布局文件:R.layout.list
。此布局应该定义一个id为android.R.id.list
的列表,但我希望有帮助
正如logcat所说:您的内容必须有一个id属性为“android.R.id.list”的ListView
似乎您有一个显式的xml布局文件:
R.layout.list
。此布局应使用idandroid.R.id.list
为ListView
定义了什么id?为ListView
定义了什么id?