在Click上传递TextView的值

时间:2014-07-28 06:18:21

标签: android textview

在我的xml(activity_main.xml)中有4个Textviews。

Textview textview1,textview2,textview3,textview4。

并且值为value1,value2,value3,value4。

在MainActivity.java中 这是我的onCreate和onClick方法,

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView tv1=(TextView)findViewById(R.id.textView1);
    TextView tv2=(TextView)findViewById(R.id.textView2);
    TextView tv3=(TextView)findViewById(R.id.textView3);
    TextView tv4=(TextView)findViewById(R.id.textView4);
    tv1.setOnClickListener(this);
    tv2.setOnClickListener(this);
    tv3.setOnClickListener(this);
    tv4.setOnClickListener(this);
}
public void onClick(View v) {
 String value;
}

我想设置在我的onClick方法中单击的Textview的值

即,如果用户点击Textview1 ----- String value = value1

如果用户点击Textview2 ----- String value = value2

如果用户点击Textview3 ----- String value = value3

如果用户点击Textview4 ----- String value = value4

任何人都可以帮我解决这个问题。

7 个答案:

答案 0 :(得分:1)

v.getId()方法中将视图ID设为onClick,因此请使用

public void onClick(View v) {
    switch(v.getId()) {
      case R.id.textView1:
       value = value1;
      break;
      case R.id.textView2:
      value = value2;
     break;
     case R.id.textView3:
      value = value3;
     break;
     case R.id.textView4:
      value = value4;
     break;
}

修改

正如Squonk建议您可以直接使用v.getText()获取onClick方法中的textviews值

public void onClick(View v) {
value = v.getText().toString();
}

答案 1 :(得分:1)

在所有textView

中的xml文件中设置标记

喜欢

android:tag="value1"

for textView1

android:tag="value2"

for textView2

并获取String

String value= v.getTag().toString().trim();

答案 2 :(得分:0)

在onClick(View v)中,您可以使用v.getId()来了解已单击的视图的ID。

答案 3 :(得分:0)

尝试使用onClick()方法中的代码........

 public void onClick(View v){
    switch (v.getId()) {

    case R.id.textView1:
            //your code;
       break;

    case R.id.textView2:
            //your code;
        break;

    case R.id.textView3:
            //your code;
        break;

    case R.id.textView4:
            //your code;
        break;
    }
}

答案 4 :(得分:0)

首先,您需要将textViews的名称设为“

String text1 = tv1.getText().toString();
String text2 = tv2.getText().toString();
...... so on..

然后使用以下命令单击操作:

@Override
public void onClick(View v) {
 if(v.getId() == R.id.textView1)
 { 
   DoSomething();
   return;
 }

 if(v.getId() == R.id.textView2)
 { 
   DoSomething2();
   return;
 }

.......等......

答案 5 :(得分:0)

查看此代码:单击特定文本视图时,您将在字符串“value”中获取特定textview的值。

 public class test extends Activity implements OnClickListener {

TextView tv1, tv2, tv3, tv4;
String value;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    tv1 = (TextView) findViewById(R.id.textView1);
    tv2 = (TextView) findViewById(R.id.textView2);
    tv3 = (TextView) findViewById(R.id.textView3);
    tv4 = (TextView) findViewById(R.id.textView4);
    tv1.setOnClickListener(this);
    tv2.setOnClickListener(this);
    tv3.setOnClickListener(this);
    tv4.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.textView1:
        value = tv1.getText().toString();
        break;
    case R.id.textView2:
        value = tv2.getText().toString();
        break;
    case R.id.textView3:
        value = tv3.getText().toString();
        break;
    case R.id.textView4:
        value = tv4.getText().toString();
        break;

    }

}

}

答案 6 :(得分:0)

当您执行各种操作时,每次TextView单击(不实现OnClickListener)都会尝试这种方式,希望这可以帮助您解决问题。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv1=(TextView)findViewById(R.id.textView1);
        TextView tv2=(TextView)findViewById(R.id.textView2);
        TextView tv3=(TextView)findViewById(R.id.textView3);
        TextView tv4=(TextView)findViewById(R.id.textView4);
        tv1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // write your TextView 1 click listener code here
            }
        });
        tv2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // write your TextView 2 click listener code here
            }
        });
        tv3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // write your TextView 2 click listener code here
            }
        });
        tv4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // write your TextView 4 click listener code here
            }
        });
}