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'? –