繁体   English   中英

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

[英]Android, How can I get text from TextView in OnClick

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

这是错误的

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();  
tv2.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
    Intent intent = new Intent(Contact.this,Discution.class);

            String str = tv2.getText().toString(); 

            startActivity(intent);
}

只需使用: tv2代替this

用这个

tv2.getText().toString;

假设您的布局中有这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM