Android 安卓如何在点击按钮时将文本从编辑文本保存到共享首选项
可以在“编辑文本”中输入文本,也可以从微调器中选择预定义文本。如果从微调器中选择,则仅在“编辑文本”中显示该文本。我想如果我点击保存按钮,编辑文本中的文本将保存到共享首选项中。现在,我正在将文本保存在aftertextchanged()上的Android 安卓如何在点击按钮时将文本从编辑文本保存到共享首选项,android,sharedpreferences,android-edittext,Android,Sharedpreferences,Android Edittext,可以在“编辑文本”中输入文本,也可以从微调器中选择预定义文本。如果从微调器中选择,则仅在“编辑文本”中显示该文本。我想如果我点击保存按钮,编辑文本中的文本将保存到共享首选项中。现在,我正在将文本保存在aftertextchanged()上的onAfterTextChanged()。请建议。我甚至按照教程学习,但没有得到多少 MainActivity.java private EditText message; Spinner spinner; Button save;
onAfterTextChanged()。请建议。我甚至按照教程学习,但没有得到多少
MainActivity.java
private EditText message;
Spinner spinner;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
save = (Button) findViewById(R.id.save);
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
pref.edit().putString("autoSave", message.getText().toString()).commit();
}
}) ;
message = (EditText) findViewById(R.id.et_message);
// message.setFocusable(false);
spinner = (Spinner) findViewById(R.id.Spin_alert_message);
dbHelper = new MySQLiteHelper(MainActivity.this);
selectedContactList = dbHelper.getAllContacts();
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) {
// message.setSelection(pref.getString("AutoSave",""));
String selectedItem = alert[position];
message.setText(selectedItem);
// loads the text that has been stored to SP and set it to
// EditText
// to bring cursor to front
message.setSelection(message.getText().length());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
/************************** saving custom message *****************************/
ListView contactlist = (ListView) findViewById(R.id.contactListitems);
Resources res = getResources();
adapter = new CustomAdapter(MainActivity.this, selectedContactList,
res, MainActivity.this);
contactlist.setAdapter(adapter);
MainActivity.java
私人短信;
纺纱机;
按钮保存;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最终SharedReferences pref=首选项管理器
.GetDefaultSharedReferences(本文件);
save=(按钮)findViewById(R.id.save);
save.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
SharedReferences pref=PreferenceManager.GetDefaultSharedReferences(MainActivity.this);
pref.edit().putString(“自动保存”,message.getText().toString()).commit();
}
}) ;
message=(EditText)findViewById(R.id.et_message);
//message.setFocusable(false);
微调器=(微调器)findViewById(R.id.Spin\u警报消息);
dbHelper=newmysqlitehelper(MainActivity.this);
selectedContactList=dbHelper.getAllContacts();
ArrayAdapter adp=新的ArrayAdapter(
getApplicationContext(),android.R.layout.simple\u微调器\u项,
警惕);
旋转器.设置适配器(adp);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长id){
//message.setSelection(pref.getString(“AutoSave”,“AutoSave”);
字符串selectedItem=警报[位置];
message.setText(选择编辑项);
//加载已存储到SP的文本并将其设置为
//编辑文本
//把光标移到前面
message.setSelection(message.getText().length());
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});
/**************************保存自定义消息*****************************/
ListView contactlist=(ListView)findViewById(R.id.contactListitems);
Resources res=getResources();
adapter=新的CustomAdapter(MainActivity.this,selectedContactList,
res,main activity.this);
contactlist.setAdapter(适配器);
将此添加到创建时的onCreate
:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
pref.edit().putString("autoSave", message.getText().toString()).commit();
}
});
还请注意,您正在拨打冗余电话:
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
及
做同样的事情,那么为什么不重用pref
变量,而不是创建对相同SharedReferences
的新引用呢?将此添加到onCreate
:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
pref.edit().putString("autoSave", message.getText().toString()).commit();
}
});
还请注意,您正在拨打冗余电话:
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
及
做同样的事情,那么为什么不重用pref
变量,而不是创建对相同SharedReferences
的新引用呢?将此添加到onCreate
:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
pref.edit().putString("autoSave", message.getText().toString()).commit();
}
});
还请注意,您正在拨打冗余电话:
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
及
做同样的事情,那么为什么不重用pref
变量,而不是创建对相同SharedReferences
的新引用呢?将此添加到onCreate
:
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(YourActivity.this);
pref.edit().putString("autoSave", message.getText().toString()).commit();
}
});
还请注意,您正在拨打冗余电话:
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
及
做同样的事情,那么为什么不重用pref
变量,而不是创建对相同SharedReferences
的新引用呢?这样做
private EditText message;
Spinner spinner;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
save = (Button) findViewById(R.id.save);
save.setOnClickListener(onAddLocationButtonPressed) ;
message = (EditText) findViewById(R.id.et_message);
// message.setFocusable(false);
spinner = (Spinner) findViewById(R.id.Spin_alert_message);
selectedContactList = dbHelper.getAllContacts();
ArrayAdapter<String> adp = new ArrayAdapter<String>(
getApplicationContext(), android.R.layout.simple_spinner_item,
alert);
spinner.setAdapter(adp);
final SharedPreferences pref = PreferenceManager
.getDefaultSharedPreferences(this);
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
// message.setSelection(pref.getString("AutoSave",""));
String selectedItem = alert[position];
message.setText(selectedItem);
// loads the text that has been stored to SP and set it to
// EditText
message.setText(pref.getString("Entered", ""));
// to bring cursor to front
message.setSelection(message.getText().length());
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
pref.edit().putString("Entered", s.toString()).commit();
}
});
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
/************************** saving custom message *****************************/
// for saving text that user can change as per need
final SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(this);
// 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();
});
ListView contactlist = (ListView) findViewById(R.id.contactListitems);
Resources res = getResources();
adapter = new CustomAdapter(MainActivity.this, selectedContactList,
res, MainActivity.this);
contactlist.setAdapter(adapter);
}
private View.OnClickListener onAddLocationButtonPressed = new View.OnClickListener() {
public void onClick(View v) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
Editor editor = preferences.edit();
editor.putString("autoSave", message.getText().toString()).commit();
}
};
私人编辑短信;
纺纱机;
按钮保存;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
save=(按钮)findViewById(R.id.save);
save.setOnClickListener(onAddLocationButtonPressed);
message=(EditText)findViewById(R.id.et_message);
//message.setFocusable(false);
微调器=(微调器)findViewById(R.id.Spin\u警报消息);
selectedContactList=dbHelper.getAllContacts();
ArrayAdapter adp=新的ArrayAdapter(
getApplicationContext(),android.R.layout.simple\u微调器\u项,
警惕);
旋转器.设置适配器(adp);
最终SharedReferences pref=首选项管理器
.GetDefaultSharedReferences(本文件);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长id){
//message.setSelection(pref.getString(“AutoSave”,“AutoSave”);
字符串selectedItem=警报[位置];
message.setText(选择编辑项);
//加载已存储到SP的文本并将其设置为
//编辑文本
message.setText(pref.getString(“Entered”、”);
//把光标移到前面
message.setSelection(message.getText().length());
message.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列,int start,
前整数,整数计数){
//TODO Aut