android:onClick 获取被点击项目的id

pti*_*flo 2 android android-layout android-studio

我有一个带有作者姓名的帖子列表。我想知道点击了哪个作者姓名。

帖子列表示例

布局 :

<TextView
    android:id="@+id/user"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/black"
    android:layout_marginLeft="10dp"
    android:textStyle="bold"
    android:onClick="userClick"
    tools:text="User" />

<TextView android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="@android:color/black"
    android:layout_alignLeft="@+id/user"
    android:layout_below="@+id/user"
    android:onClick="postClick"
    tools:text="Content" />
Run Code Online (Sandbox Code Playgroud)

单击作者姓名时,将调用此函数:

public void userClick(View v) {
    //Is it possible to know which author name had been clicked from here?
}
Run Code Online (Sandbox Code Playgroud)

识别用户单击的作者姓名的正确方法是什么。

编辑

我已经尝试过 getId() 方法

public void userClick(View v) {
Log.d("userClick called :",String.valueOf(v.getId()));
}
Run Code Online (Sandbox Code Playgroud)

即使我点击不同的用户,它也总是返回相同的 id。

在此处输入图片说明

Moh*_*211 7

如果您使用的是列表视图,则可以使用以下内容:

String author ;
yourListView.setOnItemClickListener (new AdapterView.OnItemClickListener(){
@Override 
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
Textview user = (TextView) view.findViewById(R.id.user);
author=user.getText().toString();
}
});
Run Code Online (Sandbox Code Playgroud)

更新:你试过吗?

public void userClick(View view){
TextView textview = (TextView) view;
author=textview.getText().toString();
}
Run Code Online (Sandbox Code Playgroud)