2016-09-23 61 views
0

我有两项活动,MainActivitySecondActivity。在MainActivity我有10 TextViews列出。他们都可点击。我想要SecondActivity当这些TextViews中的任何一个被点击时,第二个Activity显示关于点击TextView的文本。如何通过单击TextView更改活动字符串

例如:

MainActivity textViews:

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

当梅赛德斯点击时,在SecondActivity一个梅赛德斯文本并在SecondActivity后退按钮。当宝马点击MainActivitySecondActivity再次打开,但关于宝马的文字。

我希望我能解释一下。

+0

你能不能把它传递使用意图? –

+0

您必须将数据使用捆绑/意图传递给其他人的活动 – Aspicas

+0

您想实施clicklistener并将数据捆绑或使用putExtra函数 –

回答

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); 

    } 
} 
1

可以使用bundleintent

从活动发送数据的

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"); 
} 
0

数据传递从Activity A数据Activity B您必须做两个步骤:

为您的每个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; 
    ... 
    } 
} 

希望这有助于

相关问题