问题描述
- 检测 listview 的 ID 的问题
-
我想导入ListView,但是由于某些原因,程序不能检测出 listview 的ID。我试着
清除程序项目的缓存,重启 eclipse ,但是结果还是一样。如何检测 listview 的 ID?public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.firstlist); testcontacts = getResources() .getStringArray(R.array.testcontacts_array); aa = new MessageView(); lv = (ListView) findViewById(R.id.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(); } }); }
Listview 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="@android: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" > </ListView> </RelativeLayout>
list view items format:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:padding="6dip" > <ImageView android:id="@+id/icon1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:layout_alignParentTop="true" android:layout_marginRight="6dip" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/secondLine" android:layout_width="fill_parent" android:layout_height="26dip" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_toRightOf="@id/icon1" android:ellipsize="marquee" android:singleLine="true" android:text="Some more information" /> <TextView android:id="@+id/firstLine" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_above="@id/secondLine" android:layout_alignParentTop="true" android:layout_alignWithParentIfMissing="true" android:layout_toRightOf="@id/icon1" android:gravity="center_vertical" android:text="Some Information" /> <ImageView android:id="@+id/icon2" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="6dip" android:src="@drawable/ic_launcher" /> </RelativeLayout>
解决方案
lv = (ListView) findViewById(R.id.list); 这句是错误的
应该是:
lv = (ListView) findViewById(android.R.id.list);
如果是继承ListActivity 的话, 可以用getListView()
时间: 2024-11-18 10:00:49