Listview错误:";您的内容必须具有id属性为';android.R.id.list'&引用;
我在我的日志中得到一个错误,说“你的内容必须有一个id属性为‘android.R.id.list’的ListView”。我的代码可以编译并运行,但在启动listview活动时强制关闭。我已经检查了许多类似的问题,这似乎是一个常见的问题,但我仍然无法修复我的代码 宣言:Listview错误:";您的内容必须具有id属性为';android.R.id.list'&引用;,android,android-intent,android-listview,android-relativelayout,listviewitem,Android,Android Intent,Android Listview,Android Relativelayout,Listviewitem,我在我的日志中得到一个错误,说“你的内容必须有一个id属性为‘android.R.id.list’的ListView”。我的代码可以编译并运行,但在启动listview活动时强制关闭。我已经检查了许多类似的问题,这似乎是一个常见的问题,但我仍然无法修复我的代码 宣言: private ListView lv; Context mContext; List mList; String[] testcontacts; MessageView aa = nul
private ListView lv;
Context mContext;
List mList;
String[] testcontacts;
MessageView aa = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstlist);
testcontacts = getResources()
.getStringArray(R.array.testcontacts_array);
aa = new MessageView();
lv = getListView();/*(ListView) lv.findViewById(R.id.list); Had to comment out, it cannot find list*/
lv.setAdapter(aa);
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(),
((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
}
class MessageView extends ArrayAdapter<String> {
MessageView() {
super(FirstLoginActivity.this, android.R.layout.activity_list_item,
testcontacts);
// TODO Auto-generated constructor stub
}
public View getView(int position, View convertview, ViewGroup parent) {
Log.d("Ebz", "inside getView method");
ViewHolder holder;
View v = convertview;
if (v == null) {
Log.d("Ebz", "if v == null");
LayoutInflater inflater = getLayoutInflater();
v = inflater.inflate(R.layout.list_items, null);
holder = new ViewHolder();
holder.firstLine = (TextView) v.findViewById(R.id.firstLine);
holder.secondLine = (TextView) v.findViewById(R.id.secondLine);
holder.icon1 = (ImageView) v.findViewById(R.id.icon1);
holder.icon2 = (ImageView) v.findViewById(R.id.icon2);
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
holder.firstLine.setText(testcontacts[position]);
holder.secondLine.setText(testcontacts[position]);
holder.icon1.setImageBitmap(null);
holder.icon2.setImageBitmap(null);
// call the images directly?
return v;
}
class ViewHolder {
TextView firstLine;
TextView secondLine;
ImageView icon1;
ImageView icon2;
}
}
}
私有ListView lv;
语境;
列表列表;
字符串[]testcontacts;
MessageView aa=null;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.firstlist);
testcontacts=getResources()
.getStringArray(R.array.testcontacts\u数组);
aa=新消息视图();
lv=getListView();/*(ListView)lv.findViewById(R.id.list);必须注释掉,无法找到列表*/
低压设置适配器(aa);
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),
((TextView)view.getText(),Toast.LENGTH_SHORT.show();
}
});
}
类MessageView扩展了ArrayAdapter{
MessageView(){
super(FirstLoginActivity.this、android.R.layout.activity\u列表\u项、,
试验接触);
//TODO自动生成的构造函数存根
}
公共视图getView(int位置、视图转换视图、视图组父视图){
Log.d(“Ebz”,“内部getView方法”);
视窗座;
视图v=转换视图;
如果(v==null){
Log.d(“Ebz”,“如果v==null”);
LayoutInflater充气机=getLayoutInflater();
v=充气机充气(R.layout.list_项目,空);
holder=新的ViewHolder();
holder.firstLine=(TextView)v.findViewById(R.id.firstLine);
holder.secondLine=(TextView)v.findViewById(R.id.secondLine);
holder.icon1=(ImageView)v.findViewById(R.id.icon1);
holder.icon2=(ImageView)v.findViewById(R.id.icon2);
v、 setTag(支架);
}否则{
holder=(ViewHolder)v.getTag();
}
holder.firstLine.setText(testcontacts[position]);
holder.secondLine.setText(测试触点[位置]);
holder.icon1.setImageBitmap(空);
holder.icon2.setImageBitmap(空);
//直接调用图像?
返回v;
}
类视图持有者{
文本视图第一行;
文本视图第二行;
图像视图图标1;
ImageView图标2;
}
}
}
我的XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/top_control_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:background="#cc252a"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="This will be Changed"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
<LinearLayout
android:id="@+id/bottom_control_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_above="@id/bottom_control_bar"
android:layout_below="@id/top_control_bar"
android:choiceMode="multipleChoice" />
</RelativeLayout>
我的列表项目:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/top_control_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:background="#cc252a"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:text="This will be Changed"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
<LinearLayout
android:id="@+id/bottom_control_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_above="@id/bottom_control_bar"
android:layout_below="@id/top_control_bar"
android:choiceMode="multipleChoice"
android:divider="#cc252a"
android:dividerHeight="14.5dp" />
</RelativeLayout>
您可能正在使用ListActivity 在firstlist.xml中,将id替换为:
<ListView
android:id="@android:id/list"
...
我想我不知道你的意思。看起来我已经在listview中声明了你键入它的确切方式。当我复制并粘贴代码时,我在“lv=(listview)lv.findViewById(R.id.list);”下得到了一个错误。列表列表无法解析或不是字段。请看一看你的声明:你写了安卓:id=“@+id/list”,我的是安卓:id=“@android:id/list”。这就是问题所在。正如我在后面阐述的那样,ID是问题所在,而您的声明是错误的。感谢您使我的listview正常工作,但它没有在我的getview方法上显示我想要的方式。它的显示方式和其他基本列表视图一样,而不是我的自定义列表。我开始了另一篇关于第二个问题的帖子,以防你想查看它