Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓如何在点击按钮时将文本从编辑文本保存到共享首选项_Android_Sharedpreferences_Android Edittext - Fatal编程技术网

Android 安卓如何在点击按钮时将文本从编辑文本保存到共享首选项

Android 安卓如何在点击按钮时将文本从编辑文本保存到共享首选项,android,sharedpreferences,android-edittext,Android,Sharedpreferences,Android Edittext,可以在“编辑文本”中输入文本,也可以从微调器中选择预定义文本。如果从微调器中选择,则仅在“编辑文本”中显示该文本。我想如果我点击保存按钮,编辑文本中的文本将保存到共享首选项中。现在,我正在将文本保存在aftertextchanged()上的onAfterTextChanged()。请建议。我甚至按照教程学习,但没有得到多少 MainActivity.java private EditText message; Spinner spinner; Button save;

可以在“编辑文本”中输入文本,也可以从微调器中选择预定义文本。如果从微调器中选择,则仅在“编辑文本”中显示该文本。我想如果我点击保存按钮,编辑文本中的文本将保存到共享首选项中。现在,我正在将文本保存在aftertextchanged()上的
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