Android:有没有办法找出哪个视图正在点击

时间:2013-06-22 10:39:49

标签: android android-listview

我有ListView BaseAdapter,其项目为LinearLayout。在LinearLayout内,有一个TextView和一个RadioGroup

我为listview写了OnItemClickListener。但是,当我点击ListView内的项目时。什么都没有回应!

我想知道如何找出被点击的视图。有没有像Log.setShowClickingView(true)

这样的方法

2 个答案:

答案 0 :(得分:2)

首先,你需要在你的Xml中有一个类似这样的事件

 android:onClick="myCheckMethod"

请记住,您需要为按钮和单选按钮声明/写入此语句。

现在在您的Java文件(Class)中声明方法并将其与视图匹配,您将知道单击了哪个视图

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);

getResources().getResourceName(int resid);

我猜你会选择第一个。

答案 1 :(得分:1)

使用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();

        }
    });

在上面的示例中,“int position”表示单击的项目。将显示一个Toast消息,其中包含所单击项目的索引。