Java 如何使用OnClickListener获取getTag()值
如果我使用OnClick方法,系统可以从每个textView读取标记,但是如果我更改为textView.SetOnClickListener,系统将仅读取标记为0的textView。当我尝试单击其他文本视图时,系统无法读取自己的标记。我哪里做错了??我该怎么办Java 如何使用OnClickListener获取getTag()值,java,android,onclick,tags,onclicklistener,Java,Android,Onclick,Tags,Onclicklistener,如果我使用OnClick方法,系统可以从每个textView读取标记,但是如果我更改为textView.SetOnClickListener,系统将仅读取标记为0的textView。当我尝试单击其他文本视图时,系统无法读取自己的标记。我哪里做错了??我该怎么办 package com.example.brainapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import andro
package com.example.brainapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.GridLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
GridLayout gridLayout;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridLayout = (GridLayout) findViewById(R.id.gridLayout);
textView = (TextView) findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("Tag : ", v.getTag().toString());
}
});
}
}
这是我的xml
您可以使用同一个onClickListener并从多个视图中检索标记:
TextView a = findViewById(R.id.A);
TextView b = findViewById(R.id.B);
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = (String)v.getTag();
Log.d("debug", string);
}
};
a.setOnClickListener(clickListener);
b.setOnClickListener(clickListener);
因此,您不需要编写多个onClickListener来完成相同的任务。您可以使用同一个onClickListener并从多个视图中检索标记:
TextView a = findViewById(R.id.A);
TextView b = findViewById(R.id.B);
View.OnClickListener clickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
String string = (String)v.getTag();
Log.d("debug", string);
}
};
a.setOnClickListener(clickListener);
b.setOnClickListener(clickListener);
因此,您不需要编写多个onClickListener来执行相同的操作。为什么要使用具有相同id的多个textview?噢,那么id需要不同??我只是想看看如果ID都是一样的话会发生什么。如果我们有不同的ID。。。这意味着我需要写4次onClickListener??对于每个标记???。是的,如果所有textview执行相同的操作,则可以创建一个方法,然后只需在所有4个onClickListener中调用该方法。是的,它必须对不同的ID和onClickListener写入4次。最好坚持使用Onclick(),以减少编码并达到预期效果。为什么使用具有相同id的多个textview?哦,所以id需要不同??我只是想看看如果ID都是一样的话会发生什么。如果我们有不同的ID。。。这意味着我需要写4次onClickListener??对于每个标记???。是的,如果所有textview执行相同的操作,则可以创建一个方法,然后只需在所有4个onClickListener中调用该方法。是的,它必须对不同的ID和onClickListener写入4次。最好坚持使用Onclick(),以减少编码并实现预期效果。