Android 安卓:有没有办法找出点击的是哪个视图
我有一个带有Android 安卓:有没有办法找出点击的是哪个视图,android,android-listview,Android,Android Listview,我有一个带有BaseAdapter的ListView,它的项目是LinearLayout。在LinearLayout内部,有一个TextView和一个RadioGroup 我为listview编写了一个监听器。但是,当我单击ListView中的项目时。没有回应 我想知道我怎样才能知道单击了哪个视图。是否有类似于Log.setShowClickingView(true)?的方法使用OnItemClickListener时,返回的内容之一是单击的项目在listView中的位置: listView1.
BaseAdapter
的ListView
,它的项目是LinearLayout
。在LinearLayout
内部,有一个TextView
和一个RadioGroup
我为listview编写了一个监听器。但是,当我单击ListView
中的项目时。没有回应
我想知道我怎样才能知道单击了哪个视图。是否有类似于Log.setShowClickingView(true)
?的方法使用OnItemClickListener时,返回的内容之一是单击的项目在listView中的位置:
listView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(getBaseContext(), "Item clicked: " + position, Toast.LENGTH_LONG).show();
}
});
listView1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
Toast.makeText(getBaseContext(),“单击的项目:”+位置,Toast.LENGTH_LONG.show();
}
});
在上面的示例中,“int position”表示单击的项。将显示一条toast消息,其中包含所单击项目的索引。使用OnItemClickListener时,返回的内容之一是所单击项目在listView中的位置:
listView1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(getBaseContext(), "Item clicked: " + position, Toast.LENGTH_LONG).show();
}
});
listView1.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
Toast.makeText(getBaseContext(),“单击的项目:”+位置,Toast.LENGTH_LONG.show();
}
});
在上面的示例中,“int position”表示单击的项。将显示一条toast消息,其中包含所单击项目的索引。首先,您需要在Xml中包含一个类似以下内容的事件
android:onClick="myCheckMethod"
请记住,您需要为按钮和单选按钮声明/编写此语句
现在,在Java文件(类)中声明方法并将其与视图匹配,您将知道单击了哪个视图
public void myCheckMethod(View v) {
// does something very interesting
String Caller = "";
if (R.id.DI == v.getId()) {
Caller = "DI";
} else if (R.id.btnExp == v.getId()) {
Caller = "Exp";
}
Log.i(Tag,"View Clicked was:"+Caller);
}
编辑请求知道如何知道ID的用户
getResources().getResourceEntryName(int resid);
或
我想您会更喜欢第一个事件。首先,您需要在Xml中有一个类似这样的事件
android:onClick="myCheckMethod"
请记住,您需要为按钮和单选按钮声明/编写此语句
现在,在Java文件(类)中声明方法并将其与视图匹配,您将知道单击了哪个视图
public void myCheckMethod(View v) {
// does something very interesting
String Caller = "";
if (R.id.DI == v.getId()) {
Caller = "DI";
} else if (R.id.btnExp == v.getId()) {
Caller = "Exp";
}
Log.i(Tag,"View Clicked was:"+Caller);
}
编辑请求知道如何知道ID的用户
getResources().getResourceEntryName(int resid);
或
我想您会喜欢第一个。请将您的代码张贴在这里,以便我们可以帮助您。请参阅。它将引导您朝着正确的方向前进。请在这里发布您的代码,以便我们可以帮助您。请参阅。它会指引你走向正确的方向……事实上,我已经写了这个。我没有编写Toast.makeText,而是编写了Log.d(“单击”、“列表视图单击”);但LogCat什么也没发生。无论如何,谢谢你的回答。:)事实上,我已经写了这个。我没有编写Toast.makeText,而是编写了Log.d(“单击”、“列表视图单击”);但LogCat什么也没发生。无论如何,谢谢你的回答。:)非常感谢你,这可能有用D下一个问题是,现在,我需要将onclick添加到xml文件中的每个视图中:(是的。只有在需要onClick事件的情况下,我才发现了该错误。我是通过在每个视图中使用toast.makeText的SetonClick Listener发现该错误的。真正的问题是我不知道哪个视图负责单击。再次感谢您:D@user2511393对不起,我不能完全理解你说的话。你是在问你还是不明白知道单击了哪个视图吗?这就是您要问的吗?是的,是的。这就是我要问的。非常感谢,这可能会起作用。:D下一个问题是,我现在需要向xml文件中的每个视图添加onclick:(是的。只有在需要onClick事件的情况下,我才发现了该错误。我是通过在每个视图中使用toast.makeText的SetonClick Listener发现该错误的。真正的问题是我不知道哪个视图负责单击。再次感谢您:D@user2511393对不起,我不能完全理解你说的话。你是在问你还是不明白你知道点击了哪个视图吗?这就是你要问的吗?是的,是的。这就是我要的。