2014-12-04 158 views
-1

我有兩個活動,First One會顯示用戶最喜歡的值,如果未設置,我會調用第二個活動設置fav值。應用程序下次我應該讀取關鍵值集中的數據並在第一個活動中顯示這些值如何在活動之間保存數據並傳遞數據

現在我可以設置鍵值並讀取它並在相同的活動中顯示它,但是當我返回或重新啓動應用程式儲存在鍵值組無法讀取數據, 任何一個可以幫助我什麼,我在這裏失蹤, 或有任何簡單的方法來實現這一目標。

+0

你試過通過意圖傳遞數據嗎? – KOTIOS 2014-12-04 05:23:26

+0

使用'SharedPreference'來存儲數據並使用'putExtra'在活動之間傳遞數據 – 2014-12-04 05:25:42

+0

使用偏好或數據庫我的朋友 – 2014-12-04 05:26:44

回答

1

必須由您需要在您的項目中實施SharedPreference .. 使用Google地址搜索SharedPreferences演示

0

您可以使用意圖在活動之間傳遞數據。

Intent intent = new Intent(current.this, Destination_activity.class); 
intent.putextra("keyName","value"); 
startActivity(intent); 

在你的目的地的活動使用該工具來獲取「值」發送

String data = getIntent().getExtras().getString("keyName"); 
1

集vlaues爲:

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
Editor edit = pref.edit(); 
edit.putBoolean("news_icon_flag", true); 
edit.putString("key","value"); 
edit.commit(); 

然後得到徘徊無論需要任何活動如下這些值:

pref.getString("key","defaultvalue"); 
1

用於存儲數據到安卓看到official Doc

你的情況,你可以使用SharedPreference

,當你在firstActivity,傳遞價值,你的第二activty這樣

Intent intent = new Intent(FirstActivty.this, SecondActivity.class); 
intent.putextra("key","value"); 
startActivity(intent); 

,而這樣做你可以在secondActivity中通過velue現在你在第二個活動

Intent intent = getIntent(); 
String = intent.getStringExtra("key"); 

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("key", value); 
editor.commit(); 

用於從檢索數據

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String restoredText = prefs.getString("key", null); 
0

如果你想讀第二活動的第一項活動,你有 意圖捆綁設定數據來聽它onActivityForResult()中的數據。

當您啓動從兩拳的活動你的第二個活動不喜歡它: -

Intent intent = new Intent(this, SecondActivity.class); 
startActivityForResult(intent,REQUEST_CODE); 

而且在同一個活動覆蓋方法: -

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) { 
      String data = data.getStringExtra("fav");; 
      SharedPreferences pref = PreferenceManager 
      .getDefaultSharedPreferences(getApplicationContext()); 

      Editor edit = pref.edit(); 
      edit.putString("favourities", data); //edit.putString("key","value"); 
      edit.commit(); 
      //More about SharedPref you can find [here][1] 
     } 
    } 

,並在你的第二個活動,當你設置你的數據喜歡: -

String favourities=editText1.getText().toString(); 
       Intent intent=new Intent(); 
       intent.putExtra("fav", favourities); 

       setResult(RESULT_OK,intent); 

       finish();//finishing activity 

關於onActivityForResult的更多信息可以查找here

當您下一次啓動您的應用程序,你可以通過調用

SharedPreferences pref = PreferenceManager 
       .getDefaultSharedPreferences(getApplicationContext()); 
     String fav= pref.getString("favourities", null); 
0

使用的數據保存在共享prefrences /刪除/更新這種方法得到SharedPref您的數據:

* Method used to get Shared Preferences */ 

public SharedPreferences getPreferences() 
{ 
    return getSharedPreferences(<PREFRENCE_FILE_NAME>, MODE_PRIVATE); 
} 
/** 
* Method used to save Preferences */ 
public void savePreferences(String key, String value) 
{ 
    SharedPreferences sharedPreferences = getPreferences(); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putString(key, value); 
    editor.commit(); 
} 
/** 
* Method used to load Preferences */ 
public String loadPreferences(String key) 
{ 
    try { 
     SharedPreferences sharedPreferences = getPreferences(); 
     String strSavedMemo = sharedPreferences.getString(key, ""); 
     return strSavedMemo; 
    } catch (NullPointerException nullPointerException) 
    { 
     Log.e("Error caused at TelaSketchUtin loadPreferences method", 
       ">======>" + nullPointerException); 
     return null; 
    } 
} 
/** 
* Method used to delete Preferences */ 
public boolean deletePreferences(String key) 
{ 
    SharedPreferences.Editor editor=getPreferences().edit(); 
    editor.remove(key).commit(); 
    return false; 
} 

而且用於使從一個活動到另一個活動數據:

Intent intent = new Intent(A.this, B.class); 
intent.putextra("key","value"); 
startActivity(intent); 

接收的DAT一個從其他活動

Intent intent = getIntent(); 
String = intent.getStringExtra("key"); 
相關問題