如何使用单击的TextView更改活动的字符串

时间:2016-09-23 10:20:03

标签: android android-activity textview

我有两项活动MainActivitySecondActivity。在MainActivity我列出了10个TextViews。而且所有这些都是可点击的。我希望在点击其中任何一个SecondActivity时转到TextViews,然后第二个Activity显示有关点击TextView的文字。

例如:

MainActivity textViews:

1)梅赛德斯
2)宝马
3)奥迪
4)保时捷

当Mercedes点击时,在SecondActivity中有关于梅赛德斯和SecondActivity后退按钮的文字。当宝马点击MainActivity SecondActivity时再次打开,但有关宝马的文字。

我希望我能解释一下。

3 个答案:

答案 0 :(得分:2)

您可以使用Activity AActivity B

将数据从bundle传递到intent

从活动A发送数据

Bundle bundle = new Bundle();
bundle.putString("Datas", brandString);
Intent intent = new Intent(this, ActivityB.class);
intent.putExtras(bundle);

从活动B获取数据

Intent intent= getIntent();
Bundle bundle = intent.getExtras();

if (bundle != null) {
    String data = bundle.getString("Datas");
    StringBrand = data;
    StringBrand = getIntent().getExtras().getString("Datas");
}

答案 1 :(得分:0)

您必须执行两个步骤:

为每个textView添加onClickListener

您甚至可以在XML端执行此操作:

<TextView
  ...
  android:onClick="onClick"
  android:clickable="true"
/>

您甚至可以通过在Java端的每个TextView上设置onClickListener来实现

在Java代码上执行以下操作:

private void onClick(View v){
  String clickedText = ((TextView)v).text);
  Intent intent = new Intent(this, ActivityB.class);
  intent.putExtra("key", clickedText);
  startActivity(intent);
}

现在在ActivityB代码上,您在onCreate

中执行以下操作
Intent retrieved = getIntent();
String chosenWord = retrieved.getStringExtra("key");
if(chosenword != null){
  switch(chosenWord){
    case "BMW":
      myTextView.text = "BMW detail text";
      break;
    ...
  }
}

希望这有帮助

答案 2 :(得分:0)

MainActivity:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textview = (TextView) findViewById(R.id.bmw);
    textview.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent=new Intent (this,SecondActivity.class);
            intent.putExtra("data","BMW");

            startActivity(intent);
        }
    });

     //similarly send data to next activity
  }
}

SecondActivity:

public class SecondActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second_layout);

    Intent intent=getIntent();
    String message = intent.getStringExtra("data");

    TextView textview = (TextView) findViewById(R.id.textView);

    textView.setText(message);

   }
}