ListView我不能在R.id.list中引用?

时间:2010-08-17 17:38:49

标签: android listview

  ListView  ls=(ListView)findViewById(**R.id.list**);
    ls.setOnItemClickListener(new OnItemClickListener() {
     public void onItemClick(AdapterView<?> a, View v, int position, long id) {
     AlertDialog.Builder adb=new AlertDialog.Builder(ListAllTracks.this);
     adb.setTitle("LVSelectedItemExample");
    // adb.setMessage("Selected Item is = "+String.valueOf(ls.getItemIdAtPosition(position)));
     adb.setPositiveButton("Ok", null);
     adb.show();

      }
          });

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
<ListView android:id="@android:id/list"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content">

</ListView>
</LinearLayout>

4 个答案:

答案 0 :(得分:5)

使用android id是可以的。只需更改您的代码即可使用

  

findViewById(android.R.id.list)

你将完成它

答案 1 :(得分:1)

变化

<ListView android:id="@android:id/list"

<ListView android:id="@+id/android:list" 

将您的活动扩展为ListActivity

public class myActivity extends ListActivity {

然后覆盖onListItemClick函数。

@Override
protected void onListItemClick(ListView l, View v, final int position, long id) {
     super.onListItemClick(l, v, position, id);               
     AlertDialog.Builder adb=new AlertDialog.Builder(ListAllTracks.this);
     adb.setTitle("LVSelectedItemExample");
    // adb.setMessage("Selected Item is = "+String.valueOf(ls.getItemIdAtPosition(position)));
     adb.setPositiveButton("Ok", null);
     adb.show();    
}

答案 2 :(得分:1)

<ListView android:id="@+id/android:list" >

做到这一点

请在此处查看答案中的更多详情

What is difference between @+id/android:list and @+id/list

答案 3 :(得分:-1)

应该是这样的:

<ListView android:id="@+id/list" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"> 

</ListView>

通常,如果视图ID没有出现在资源类中(例如R.id.????),那就表明XML布局存在问题。

我目前正在使用以下代码,它对我有用。我使用ListActivity 。相反,我将ListView控件放在标准Activity中。我正在使用自定义适配器,但如果需要,您可以使用标准ArrayAdapter

List<Unit> unitList = ... get my list of stuff ...
ListView unitListView = (ListView)findViewById(R.id.unitListView);
UnitListItemAdapter adapter = new UnitListItemAdapter(this, unitList);  
unitListView.setAdapter(adapter);