【发布时间】:2016-01-22 19:36:38
【问题描述】:
我是安卓新手。我在我的微调器中显示 5 个字符串,我希望当用户选择一个字符串时,它会显示到编辑文本视图中。我完成了微调器项目的设置,但我不知道如何在编辑文本视图上显示它。我还想将其保存到共享首选项(我允许用户从微调器中选择文本或手动输入任何文本。我可以将自定义文本设置为共享首选项,但不知道如何保存所选文本文字)
Spinner spinner;
String[] alert = { "I am in danger", "Help Me", "Watch Out", "Look For Me",
"Cover ME" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences sp = getSharedPreferences("EditValue" ,0);
String myvalue = sp.getString("myvalue","");
if(myvalue!=null || !myvalue.equalsIgnoreCase("")) {
message.setText(myvalue);
}
spinner = (Spinner) findViewById(R.id.Spin_alert_message);
ArrayAdapter<String> adp = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_spinner_item,
alert);
spinner.setAdapter(adp);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
String selectedItem = alert[position];
message.setText(selectedItem);
SharedPreferences sp = getSharedPreferences("EditValue" ,0);
SharedPreferences.Editor spEdt = sp.edit();
spEdt.putString("myvalue", message.getText().toString());
spEdt.commit();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
// for saving text that user can change as per need
final SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(this);
message = (EditText) findViewById(R.id.et_message);
// loads the text that has been stored to SP and set it to Edit Text
message.setText(preferences.getString("autoSave", ""));
// adding addTextChangedListner() to the Edit Text View
message.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// saving text after it is changed by the user
preferences.edit().putString("autoSave", s.toString()).commit();
}
});
【问题讨论】:
-
从
spinner获取选定的值并设置文本intEditText -
使用
setOnItemSelectedListener作为微调器来获取他的项目名称并在Edittext中设置山雀