我有一些TextView
,每个人都有一个OnClickListener
。我想通过此方法获取TextView
TextView tv2 = new TextView(this,(String)book.get(i),this);
tv2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Contact.this,Discution.class);
//String str = this.getText(); //like this
startActivity(intent);
}
});
我该怎样做:this.getText();
中的OnClickListener
?
答案 0 :(得分:8)
这是错误的
TextView tv2 = new TextView(this,(String)book.get(i),this);
您需要TextView为final,构造函数应匹配以下任何
TextView(Context context)
TextView(Context context, AttributeSet attrs)
TextView(Context context, AttributeSet attrs, int defStyle)
应该是
final TextView tv2 = new TextView(this);
您没有使用上述任何一项。完全错了
然后在onClick
String str = tv2.getText().toString();
它宣布最后的原因是你在匿名内部类中访问tv2。
http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html#accessing
您也可以使用View v
。
TextView tv = (TextView) v;
String str = tv.getText().toString();
答案 1 :(得分:3)
tv2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Contact.this,Discution.class);
String str = tv2.getText().toString();
startActivity(intent);
}
答案 2 :(得分:2)
只需使用:tv2
代替this
。
答案 3 :(得分:0)
使用此
tv2.getText().toString;
答案 4 :(得分:0)
让我们假设您的布局中有这个:
<TextView android:id ="@+id/myText"
android:layout_width ="wrap_content"
android:layout_height="wrap_content"
android:textSize ="26dp"
android:text ="bla bla bla..."
android:textColor ="#0000ff"
android:clickable ="true"
android:onClick ="onMyClick"/>
现在,让我们在点击 myText 元素时获取文本内容
public void onMyClick(View v)
{
TextView t=(TextView)v;
String s=t.getText().toString();
//do whatever you want with the string s
}
请注意布局元素上的布尔值 android:clickable =“ true” [这是强制性的]