使用意图通过按钮将微调对象传递给新活动

问题描述:

在第一个活动中,我有一个微调器和一个按钮。我想这样做是为了在选择微调器选项并点击按钮后,打开一个新的活动,并在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> 

在你的第一个代码片段,您可以创建一个Intenti),指向的东西是不是一个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); 
+0

我明白了,我有微调的第二个参数时,我应该把目标/ Selected.class。编辑主帖〜 – zillma22 2015-02-10 20:20:50

+0

不喜欢双重评论,但是,我会怎样在这个新页面的文本框中选择一个从微调框中选择的对象?它正确加载空白页面,但我希望该对象显示在textview中,然后使用putExtra方法添加其他信息。 – zillma22 2015-02-10 20:32:29

+0

用你的视图创建一个布局,并将其传递给'setContentView'。检索'TextView'槽'findViewById'并调用实例 – Blackbelt 2015-02-10 20:35:10