2017-04-18 49 views
-3

我想發送一個字符串變量,輸入到ActivityOne的EditText中以傳遞數據並在ActivityThree上顯示爲TextView。但是,我遇到了問題,因爲唯一的解決方案是我可以找到導致活動切換到ActivityThree的唯一解決方案。我想避免這種情況,或者甚至可以將數據發送到ActivityThree,然後單擊按鈕切換到ActivityTwo。任何幫助或重定向到當前的解決方案將不勝感激。如何將數據從一個活動中的EditText傳遞到另一個活動中的TextView而不切換到第二個活動?

+0

使用sharedpreference將當前輸入保存到當前活動中並顯示給其他活動。 –

回答

0

如果要通過避免ActivityTwo將Activity1中的數據發送到ActivityThree,然後將該數據保存到靜態變量中,然後在ActivityThree中使用該變量來設置TextView數據。

0

您可以簡單地使用SharedPreferences來做到這一點。

  1. 設置在PreferenceEditText值從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); 
    

希望這將有助於〜

0

請在Application類中使用全局變量,並在ActivityOne中設置其值,並從ActivityThree中讀取相同的值。全局變量可用於整個項目活動。

0

最好的方法是使用輸入額外。在活動這一塊做

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

然後接收字符串在活動三這樣:

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

有這麼多的方式來做到這一點。但它在很大程度上取決於你打算做什麼數據和你的情況.. 如果你想顯示的活動中三個數據比可以使數據persist後來表現出來活動時三是創建或恢復,現在:

1 - 如果你想顯示數據在活動三中,並且您希望該值僅在當前會話中持續存在時,您可以使用Global Variable或甚至靜態其中一個,如果您將期望值定義爲活動三中的靜態變量,那麼您可以輕鬆訪問它並使用它它不需要甚至創建活動:

public ActivityThree extends Activity { 
    public static String myValue; 

2 - 如果你想顯示在活動的三個數據以及要將數據堅持即使應用程序被關閉可以使用SharedPreferences如下所述: https://developer.android.com/training/basics/data-storage/shared-preferences.html

3-如果您想在活動三中運行後臺任務確定價值,您可以使用LocalBroadcastManagerhttps://www.intertech.com/Blog/using-localbroadcastmanager-in-service-to-activity-communications/

相關問題