我正在尝试将值传递给文本视图到另一个活动,但只有在单击活动中的按钮时才会这样。
以下是我尝试设置文字的活动......
public static Button yes;
public static final String TEST_KEY = "test";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question19);
yes = (Button) findViewById(R.id.finalYes);
yes.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent myIntent = new Intent(v.getContext(), Question13Activity.class);
startActivity(myIntent);
Intent i = new Intent(Question12Activity.this, HighRiskActivity.class);
i.putExtra(TEST_KEY, "SOME STRINGSSS");
}
});
以下是HighRiskActivity,它是更新textview值的目的地......
TextView t;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.high_risk);
t = (TextView) findViewById(R.id.abusedOrNah);
Bundle extras = getIntent().getExtras();
if(extras != null)
{
String value = extras.getString(TEST_KEY);
t.setText(value);
}
我的问题是没有文字正在打印所需的活动,我是否传递了错误的数据?任何帮助都会很棒,这是我正在创建的应用程序的最后一步:D
更新
单击按钮时,我不希望将Question12Activity定向到HighRiskActivity。我希望它转到下一个活动,但仍然能够在单击按钮后将文本传递到HighRiskActivity。很抱歉这有点混乱,希望更有意义:)
答案 0 :(得分:1)
尝试以这种方式传递数据:
Intent i = new Intent(this, SecondActivity.class);
Bundle bundle = new Bundle();
//Add your data to bundle
bundle.putString(“test”, "Data you want to pass");
//Add the bundle to the intent
i.putExtras(bundle);
startActivity(i);
现在,您在SecondActivity
课程中检索数据如下:
Bundle bundle = getIntent().getExtras();
//get the data…
String stuff = bundle.getString(“test”);
答案 1 :(得分:1)
通过下面的陈述开始第一项活动,我不知道你想要达到的目的
Intent myIntent = new Intent(v.getContext(), Question13Activity.class);
startActivity(myIntent);
但是,如果您要启动的活动是HighRiskActivity
,那么以下内容应该可以解决您的问题:
Intent i = new Intent(Question12Activity.this, HighRiskActivity.class);
i.putExtra(TEST_KEY, "SOME STRINGSSS");
startActivity(i);
// 此行对于启动新活动很重要。
所以,我想你的主要问题是你没有通过startActivity(i);
电话启动活动。
答案 2 :(得分:0)
在活动A中,您使用的是不公开的内部意图包以及意图的私有。在活动B中,您要求的目的是寻找您自己提供的捆绑包。
在您的活动A中尝试这样的事情
Intent intent = new Intent(context, YourActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelable("EXTRA1", "string data");
intent.putExtra(TEST_KEY, bundle);
startIntent(intent);
这是一篇关于这个主题的好文章(见答案)Advantages of using Bundle instead of direct Intent putExtra() in Android
答案 3 :(得分:0)
您不需要定义两个意图来连接两个活动。将以下内容放在onClick方法
中Intent i = new Intent(Question12Activity.this, HighRiskActivity.class);
i.putExtra(TEST_KEY, "SOME STRINGSSS");
startActivity(i);