Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android, How can I get text from TextView in OnClick

I have some TextView and each have an OnClickListener. I would like get information in this method to 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);
    }
});

How can I do : this.getText(); in an OnClickListener ?

like image 326
Loïc Avatar asked Apr 14 '14 13:04

Loïc


2 Answers

This is wrong

TextView tv2 = new TextView(this,(String)book.get(i),this);

You will need TextView to be final and the constructor should match any of the below

TextView(Context context)
TextView(Context context, AttributeSet attrs)
TextView(Context context, AttributeSet attrs, int defStyle)

It should be

final TextView tv2 = new TextView(this);

You are not using any of the above. Totally wrong

Then inside onClick

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

Its declared final cause you access tv2 inside annonymous inner class.

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

You can also use the View v.

TextView tv = (TextView) v;
String str = tv.getText().toString();  
like image 177
Raghunandan Avatar answered Nov 11 '22 15:11

Raghunandan


tv2.setOnClickListener(new OnClickListener() {

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

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

            startActivity(intent);
}
like image 26
Sagar Maiyad Avatar answered Nov 11 '22 15:11

Sagar Maiyad