Android,如何在OnClick中从TextView获取文本

时间:2014-04-14 13:00:14

标签: java android onclick textview

我有一些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

5 个答案:

答案 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” [这是强制性的]