无法一起显示2个意图

时间:2015-04-11 16:05:18

标签: android android-intent

我正在尝试使用2个意图,但一次只能使用其中一个。如果我删除一个然后另一个将工作,但如果我把它们放在一起然后只有其中一个在这里工作是我的代码

    private void addReviews(String SName, String SFacility) {
        Intent i = new Intent(getApplicationContext(), AddReview.class);
        i.putExtra("Stations", SName);
        startActivity(i);

        Intent a = new Intent(getApplicationContext(), AddReview.class);
        a.putExtra("Facilities", SFacility);
        startActivity(a);

    }

AddReview.class

TextView txtestablishment = (TextView) findViewById(R.id.TextViewStationReview);

        Intent i = getIntent();
        final String Stations = i.getStringExtra("Stations");

        txtestablishment.setText("Add Review for " + Stations);

        Intent a = getIntent();
        String Ftype = a.getStringExtra("Facilities");

        ArrayList<String> al = new ArrayList<String>(); {

            String name = a.getStringExtra("Facilities");

            StringTokenizer tokenizer = new StringTokenizer(name,",");
            while(tokenizer.hasMoreElements()){
                al.add((String)tokenizer.nextElement());
            }

        }

        ArrayAdapter<String> aa1 = new ArrayAdapter<String>(
                getApplicationContext(), R.layout.spinner_item, R.id.textView1,
                al);

        spFacilityType.setAdapter(aa1);

        spFacilityType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){

            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }
        });

这是一个无效的

Intent i = getIntent();
final String Stations = i.getStringExtra("Stations");

txtestablishment.setText("Add Review for " + Stations);

3 个答案:

答案 0 :(得分:2)

你不能一次用2个意图开始2个活动。 (你会把它们放在屏幕上?)

答案 1 :(得分:1)

不确定为什么你要将两个不同的意图发送到同一个地方,只需将两个额外内容放在一个意图中并从中调用它们。查看您的代码,我无法看到两次调用相同活动的原因。

就这样做

Intent i = new Intent(getApplicationContext(), AddReview.class);
i.putExtra("Stations", SName);
i.putExtra("Facilities", SFacility);
startActivity(a);

答案 2 :(得分:0)

您的原始代码会启动两项活动,后者是可见的,当您关闭它时,您会看到第一项活动。我的猜测是您希望启动传递给它的多个元数据的单个活动。您可以通过意图传递几乎无限数量的额外内容。这些额外内容由该意图实例的唯一键标识(此处为#34; Stations&#34;&#34; Facilities&#34;)。

TL; DR:你最需要的东西是这样的:

private void addReviews(String SName, String SFacility) {
    Intent i = new Intent(this, AddReview.class);
    i.putExtra("Stations", SName);
    i.putExtra("Facilities", SFacility);
    startActivity(i);
}