使用意图通过按钮将微调对象传递给新活动
问题描述:
在第一个活动中,我有一个微调器和一个按钮。我想这样做是为了在选择微调器选项并点击按钮后,打开一个新的活动,并在TextView中显示微调器选项(以及关于它的附加信息)。总之,我试图使用意图发送和检索数据,然后添加其他信息,我认为我会使用putExtra()方法。使用意图通过按钮将微调对象传递给新活动
在这里,我有按钮指向第二页,我试图通过意向存储微调对象。 MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button yourButton = (Button) findViewById(R.id.done);
yourButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(MainActivity.this, Selected.class);
intent.putExtra("new_variable_name","value");
startActivity(intent);
}
});
这里是Selected.class(次活动) 我要检索的微调信息,并把它变成一个TextView。
Bundle extras = getIntent().getExtras();
if (extras != null) {
String value = extras.getString("new_variable_name");
}
}
而且,这里是微调阵列名为“person_array”:
<string-array name="person_array">
<item>Nick</item>
<item>Isaac</item>
<item>Sally</item>
<item>Matt</item>
<item>Tim</item>
</string-array>
答
在你的第一个代码片段,您可以创建一个Intent
(i
),指向的东西是不是一个Android应用程序组件(Spinner
),再放一个,然后扔掉。这不会有用。
相反,把你的额外的Intent
您正在使用与startActivity()
:在你的代码
startActivity(new Intent(MainActivity.this, Selected.class)
.putExtra("new_variable_name","value"));
答
的问题是,您要创建两个不同的意图的对象。前者用字符串填充:
Intent i = new Intent(getApplicationContext(), Spinner.class);
i.putExtra("new_variable_name","value");
并且您使用后者为选定活动加上星号。
startActivity(new Intent(MainActivity.this, Selected.class));
你应该只使用一个
Intent intent = new Intent(MainActivity.this, Selected.class);
intent.putExtra("new_variable_name","value");
startActivity(intent);
我明白了,我有微调的第二个参数时,我应该把目标/ Selected.class。编辑主帖〜 – zillma22 2015-02-10 20:20:50
不喜欢双重评论,但是,我会怎样在这个新页面的文本框中选择一个从微调框中选择的对象?它正确加载空白页面,但我希望该对象显示在textview中,然后使用putExtra方法添加其他信息。 – zillma22 2015-02-10 20:32:29
用你的视图创建一个布局,并将其传递给'setContentView'。检索'TextView'槽'findViewById'并调用实例 – Blackbelt 2015-02-10 20:35:10