<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_width="fill_parent"
android:clickable="false"
android:focusable="false">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:clickable="false"
android:focusable="false"
android:orientation="vertical" >
<TextView
android:id="@+id/MXname"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="false"
android:focusable="false"
android:gravity="left"
android:text="Slashdot"
android:textStyle="bold" />
<TextView
android:id="@+id/MXtnumber"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="false"
android:focusable="false"
android:gravity="left"
android:text="10 minutes ago" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="false"
android:focusable="false"
android:orientation="vertical"
android:gravity="right"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/MXdialer"
android:layout_width="35dp"
android:layout_height="fill_parent"
android:layout_weight="2"
android:clickable="true"
android:focusable="true"
android:gravity="right"
android:src="@drawable/lcall_button" />
</LinearLayout>
</LinearLayout>
我有一个列表视图,上面列出了ROW xml,下面是活动代码:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position , long id)
{
Log.d("ItemClick","in the list"+ String.valueOf(view.getId()));
if (view==findViewById(R.id.MXdialer))
{
Toast.makeText(this, "Name and/or Phone number empty"+String.valueOf(id), Toast.LENGTH_LONG).show();
}
}
Logcat确实指示onitemClick正在执行但是toast永远不会工作,view.getid()总是返回-1。我已经阅读了关于onitemclicklisterner的文章,并且已经将所有视图都视为不可聚焦且不可点击但仍然没有去。请建议
答案 0 :(得分:0)
view
是所单击列表项的根布局,而不是项布局中的任何子项。所以Toast永远不会出现。
如果您想要点击任何特定的子视图,请将onClickListener
设置为该子项,但不会调用OnItemClickListener
。这两个中的任何一个都会被调用。子视图clikclistener优先。
答案 1 :(得分:0)
对于你的if语句尝试这个,因为不确定你可以像对待它一样比较对象。
int viewID=view.getId();
if(viewID== R.id.MXdialer)
Toast.makeText(this, "Name and/or Phone number empty"+String.valueOf(id), Toast.LENGTH_LONG).show();