android ListView监听问题,求解!怎么找到listView的Id??
<!--这是listmain.xml--><?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android...
<!--这是listmain.xml-->
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ListView>
<TextView
android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/empty"
/>
</RelativeLayout>
<!--这是listView的条目detail.xml-->
<?xml version="1.0" encoding="utf-8"?>
<LinerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/detailView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/others"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</ScrollView>
</LinerLayout>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listmain);
ListView list = (ListView)findViewById(R.id.list);//找不到这个R.id.list,直接报错
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View view, int possition,
long id) {});
因为我继承了ListActivity,然后好像这个是要这样写的吧!android:id="@id/android:list";
后面我直接继承Activity,然后改为android:id="@+id/list",结果还是一样,无法监听,点击没有反应log里面什么都没有。! 展开
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ListView>
<TextView
android:id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/empty"
/>
</RelativeLayout>
<!--这是listView的条目detail.xml-->
<?xml version="1.0" encoding="utf-8"?>
<LinerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:id="@+id/detailView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/others"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</ScrollView>
</LinerLayout>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listmain);
ListView list = (ListView)findViewById(R.id.list);//找不到这个R.id.list,直接报错
list.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View view, int possition,
long id) {});
因为我继承了ListActivity,然后好像这个是要这样写的吧!android:id="@id/android:list";
后面我直接继承Activity,然后改为android:id="@+id/list",结果还是一样,无法监听,点击没有反应log里面什么都没有。! 展开
展开全部
楼上正解。为了让你看明白,解释一下吧。
android:id="@+id/list"
这个“+”号代表新建一个还没有创建过的ID。
android:id="@id/list"
如果没有这个“+”号,就是引用一个已有的ID,区别就在这里。
android:id="@+id/list"
这个“+”号代表新建一个还没有创建过的ID。
android:id="@id/list"
如果没有这个“+”号,就是引用一个已有的ID,区别就在这里。
追问
因为我继承了ListActivity,然后好像这个是要这样写的吧!android:id="@id/android:list";
后面我直接继承Activity,然后改为android:id="@+id/list",结果还是一样,无法监听,点击没有反应log里面什么都没有。!
追答
在你的工程目录gen应该有R.java吧?按你说的,后来改为Activity后,在AndroidManifest.xml里面有加入Activity的类吧?或者你继续ListActivity的话,ListView list = (ListView)findViewById(R.id.list);改成ListView list = (ListView)findViewById(android.R.id.list);不用加号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照你现在xml里对list的定义,你用android.R.id.list就能找到。。
具体原因参加楼上两位。
具体原因参加楼上两位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序就有错阿。
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ListView>
<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ListView>
追问
因为我继承了ListActivity,然后好像这个是要这样写的吧!android:id="@id/android:list";
后面我直接继承Activity,然后改为android:id="@+id/list",结果还是一样,无法监听,点击没有反应log里面什么都没有。!
追答
哦。这样的话直接使用 ListView list = getListView();就可以,你那样找是肯定无法找到的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主些的代码有问题,你已经集成listactivety了就不应再应用,你要是集成的是activety就需要应用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
给listview设置监听
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
给listview设置监听
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询