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

Loï*_*oïc 5 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);
    }
});
Run Code Online (Sandbox Code Playgroud)

我该怎么办:this.getText();在一个OnClickListener

Rag*_*dan 8

这是错的

TextView tv2 = new TextView(this,(String)book.get(i),this);
Run Code Online (Sandbox Code Playgroud)

您将需要TextView为final,构造函数应匹配以下任何一个

TextView(Context context)
TextView(Context context, AttributeSet attrs)
TextView(Context context, AttributeSet attrs, int defStyle)
Run Code Online (Sandbox Code Playgroud)

它应该是

final TextView tv2 = new TextView(this);
Run Code Online (Sandbox Code Playgroud)

您没有使用上述任何一种.完全错了

然后在onClick里面

String str = tv2.getText().toString();  
Run Code Online (Sandbox Code Playgroud)

它宣布最后的原因你在匿名内部类中访问tv2.

http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html#accessing

你也可以使用View v.

TextView tv = (TextView) v;
String str = tv.getText().toString();  
Run Code Online (Sandbox Code Playgroud)


Sag*_*yad 5

tv2.setOnClickListener(new OnClickListener() {

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

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

            startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)