如何在不切换到第二个活动的情况下将数据从一个Activity中的EditText传递到另一个活动中的TextView?

时间:2017-04-18 02:47:44

标签: android android-activity

我想发送一个字符串变量,该变量输入到ActivityOne上的EditText中以传递数据,并在ActivityThree上显示为TextView。但是,作为执行此操作的唯一解决方案,我遇到问题,我可以找到导致活动在执行此操作时切换到ActivityThree。我想避免这种情况,甚至可能将数据发送到ActivityThree,并在点击按钮时切换到ActivityTwo。任何帮助或重定向到当前的解决方案将不胜感激。

5 个答案:

答案 0 :(得分:0)

如果要通过避免ActivityTwo将数据从ActivityOne发送到ActivityThree,然后将该数据保存在静态变量中,则在ActivityThree中使用该变量来设置TextView数据。

答案 1 :(得分:0)

您可以使用SharedPreferences执行此操作。

  1. EditText Preference中设置ActivityOne值:

     // EditText
     EditText editText = (EditText) findViewById(R.id.editText);
    
     SharedPreferences.Editor editor = getSharedPreferences("Your_Preference_Name", MODE_PRIVATE).edit();
     editor.putString("KEY_VALUE", editText.getText().toString());
     editor.commit();
    
  2. ActivityThree中,从Preference检索值:

     SharedPreferences prefs = getSharedPreferences("Your_Preference_Name", MODE_PRIVATE); 
     String editTextValue = prefs.getString("KEY_VALUE", null);
    
     // TextView
     TextView textView = (TextView) findViewById(R.id.textView);
     textView.setText(editTextValue);
    
  3. 希望这会有所帮助〜

答案 2 :(得分:0)

请在Application类中使用全局变量,并在ActivityOne中设置它的值,并从ActivityThree中读取相同的值。整个项目活动可以使用全局变量。

答案 3 :(得分:0)

最好的方法是使用输入额外。在活动一中执行此操作

Intent i = new Intent(ActivityOne.this, ActivityThree.class);
i.putExtra("label", "label_text");
startActivity(i); 

然后在Activity 3中接收字符串:

EditText input = //intialize it in OnCreate
Intent intent = getIntent();
String data = intent.getExtras().getString("label");
input.setText(data);

答案 4 :(得分:0)

有很多方法可以做到这一点..但这在很大程度上取决于你打算如何处理数据和你的情况。 如果您想要显示活动三中的数据,那么您可以创建数据persist,然后在活动三创建或恢复时显示该数据,现在:

1-如果您想显示活动三中的数据,并且您希望该值仅在当前会话中保留,则可以使用Global Variable或甚至静态一,如果您将所需的值定义为活动中的静态变量,则可以轻松访问它并使用它而无需甚至创建活动:

public ActivityThree extends Activity {
    public static String myValue;

2-如果您想显示活动三中的数据,并且您希望数据保持,即使应用已关闭,您也可以使用SharedPreferences,如下所述: this one

3-如果您想在活动三中运行后台任务,请确定您可以使用LocalBroadcastManagerhttps://developer.android.com/training/basics/data-storage/shared-preferences.html