6

嗨,我试图获取我在每个线性布局上设置的 ID,但我得到了

android.widget.LinearLayout@41032a40 或类似的,对我来说用处不大。

我已将 id 设置为 row1,这就是我想要返回的内容。

我确定我以前做过类似的事情,所以我不知道为什么它会返回上述内容。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@+id/row1"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@android:color/black"
    android:onClick="xmlClickHandler" />

<LinearLayout
    android:id="@+id/row2"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@android:color/white"
    android:onClick="xmlClickHandler" />

<LinearLayout
    android:id="@+id/row3"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@android:color/black" 
    android:onClick="xmlClickHandler" />

<LinearLayout
    android:id="@+id/row4"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@color/white" 
    android:onClick="xmlClickHandler" />

<LinearLayout
    android:id="@+id/row5"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@color/yellow" 
    android:onClick="xmlClickHandler" />
 <LinearLayout
    android:id="@+id/row6"
    android:layout_width="fill_parent"
    android:layout_height="30dip"
    android:background="@color/blue"
    android:onClick="xmlClickHandler" />

        public void xmlClickHandler(View v) {
    Log.d("CLICK ROW", String.valueOf(v));
}
4

7 回答 7

15

可以使用 v.getID() 检查视图 ID

您可以简单地检查为

   if(v.getId()==R.id.row1)

并相应地执行您想要的任务。

于 2013-04-25T18:52:08.377 回答
10

你可以这样做:

public void xmlClickHandler(View v) {
    String viewID = getResources().getResourceName(v.getId());
}

而且你必须解析结果字符串。

于 2015-04-03T18:34:42.467 回答
6

尝试设置android:tag="row1"并使用Log.d("CLICK ROW", String.valueOf(v.getTag()));打印id。

于 2013-04-25T18:23:54.417 回答
2

use v.getId() instead to get the Id

于 2013-04-25T18:02:37.140 回答
2

简单的解决方案,它只是一行代码。它可以从视图中获取任何 id。

String id=id=getResources().getResourceEntryName(view.getId());
于 2018-08-23T08:23:12.580 回答
1
Log.d("CLICK ROW", String.valueOf(v.getId()));

v is an instance of the View class, and you can use the getId() method to get the View's ID.

于 2013-04-25T18:02:45.403 回答
0

我刚刚看到另一个问题,显然您不能将 id 作为字符串返回。

于 2013-04-25T18:16:57.180 回答