0

我使用TextToSpeech首次一個EditText上和我有一個問題..我創建了一個EDITTEXT一個對話框,在那裏我可以寫的東西:SharedPreferences中的AlertDialog

AlertDialog.Builder alert = new AlertDialog.Builder(this); 

alert.setTitle("Title"); 
alert.setMessage("Message"); 

// Set an EditText view to get user input 
final EditText input = new EditText(this); 
alert.setView(input); 

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
    value = input.getText().toString(); 
    // Do something with value! 
    } 
}); 

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
    // Canceled. 
    } 
}); 

alert.show(); 

我需要保存偏好的價值。

我創造了這樣一條:

private void prefvalue(String tag) { 
    String name = savename.getString(Tag, null); 
    SharedPreferences.Editor preferencesEditor = savename.edit(); 
    preferencesEditor.putString("tag", tag); 
    preferencesEditor.commit(); 
} 

以及..現在的onCreate我有什麼做的?因爲我曾嘗試做一些像

input.setText(savename.getString("tag", Default Value")); 

其中input是AlertDialog內EDITTEXT。但當然不起作用,因爲它找不到input變量。

回答

1

你可以保存該值點擊肯定按鈕。

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int whichButton) { 
value = input.getText().toString(); 

SharedPreferences sp = getSharedPreference("MyKey",0); 
SharedPreferences.Editor preferencesEditor = sp.edit(); 
preferencesEditor.putString("tag", value); 
preferencesEditor.commit(); 

} 
}); 

現在可以在任何需要的位置進行檢索。

SharedPreferences sp = getSharedPreference("MyKey",0); 
String data = sp.getString("tag",""); 

現在設置這個數據串到你的EditText。

+0

耶可能是一個偉大的想法謝謝。我沒有想到這個解決方案:)我會盡力感謝 –

+0

@ End.Game歡迎來! – Piyush

+0

因此,如果我想在edittext或TextView中顯示'value',我需要把'data'放到裏面呢?這是你的意思與'現在設置這個數據字符串到你的EditText'? –