2014-09-04 29 views
0

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

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); 
     } 
    } 
} 
+0

保存共享prefrence中的数据并使用任何类似于10或100个活动的地方共享数据 – 2014-09-04 13:32:35

回答

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.You可以将数据保存到SharedPreferences - 使用这个你的信息保存到“偏好“文件的应用程序。 Refer this question and answer了解如何使用它。

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

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

所以,如果你想要使用Intent只有你可以使用第一种方法。

相关问题