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

时间:2015-02-10 20:08:24

标签: android button android-intent android-studio spinner

在第一个活动中,我有一个微调器和一个按钮。我想这样做,以便当选择一个微调器选项然后单击该按钮时,将打开一个新活动,并在TextView中显示微调器选项(以及有关它的其他信息)。简而言之,我尝试使用intent发送和检索数据,然后在之后添加其他信息,我想我会使用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>

2 个答案:

答案 0 :(得分:3)

您的代码中的问题是您正在创建两个不同的intent对象。前者填满了字符串:

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

答案 1 :(得分:1)

在您的第一个代码段中,您创建一个Intenti),指向不是Android应用程序组件(Spinner)的内容,在其上添加一个额外内容,以及扔掉它。这没用。

相反,请将您的额外费用放在Intent使用的startActivity()上:

startActivity(new Intent(MainActivity.this, Selected.class)
                .putExtra("new_variable_name","value"));