使用多个意图时如何避免跳过活动?

时间:2014-09-04 13:30:22

标签: java android android-intent android-activity

我正在尝试将用户输入值从第四个活动传递到第五个活动以及第六个活动。我已经使用了Intent来传递值。但是现在当我运行应用程序时,它会在按钮点击时从第四个活动跳到第六个活动,跳过第五个活动。是因为我一起使用了这两种意图吗?如何修改代码以避免这种情况?

Fourth.java

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fourth);

    final EditText et;
    final Button b;

    et = (EditText) findViewById(R.id.editText1);
    b = (Button) findViewById(R.id.button1);

    b.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
           Intent intent = new Intent(Fourth.this, Fifth.class);
           intent.putExtra("thetext", et.getText().toString());
           startActivity(intent);

           Intent intentnew = new Intent(Fourth.this, Sixth.class);
           intentnew.putExtra("thetext", et.getText().toString());            
           startActivity(intentnew);   
        }
    }
}

1 个答案:

答案 0 :(得分:2)

以下是您可以选择的一些选项。

  1. 由于此时只想使用Intent,因此您可以使用Intent将第四个活动的数据传递到第五个。然后再使用另一个将相同的数据从第五个传递到第六个来自第五项活动的Intent
  2. 所以在你的第四个活动中有这个

    Intent intent = new Intent(Fourth.this, Fifth.class);
    intent.putExtra("thetext", et.getText().toString());
    startActivity(intent); 
    

    在你的第五个,

    String text = getIntent().getStringExtra("thetext");
    Intent intentnew = new Intent(Fifth.this, Sixth.class);
    intentnew.putExtra("theSametext", text);            
    startActivity(intentnew);
    

    2.您可以将数据保存到SharedPreferences - 使用此功能可以将信息保存到应用程序的“首选项”文件中。Refer this question and answer以了解如何使用它。

    3.将其写入SQLite数据库 - 您可以创建一个新的SQLite表来存储数据并向其写入新行。这有更多的开销,并且只有在您将大量数据存储在同一个应用程序中时才真正有用。您可以refer this tutorial为此。

    4.此外,您还可以创建一个Singelton class,它可以是一个具有可设置公共属性的静态类。但是,这仅适用于在多个活动中临时创建和保留数据。

    因此,如果您想使用Intent进行操作,则只能使用第一种方法。