【问题标题】:Save entered text in editText via button通过按钮将输入的文本保存在editText中
【发布时间】:2013-09-10 14:02:59
【问题描述】:

我想使用 sharedPreferences 保存 EditText 中输入的 String 的值。 并在活动开始时显示文本

public class enteredText extends Activity
{

  private Button savenotebutton1;
  private SharedPreferences savednotes;
  private EditText editText1;

  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.x1);

    savenotebutton1 = (Button) findViewById(R.id.savenotebutton1);
    editText1 = (EditText) findViewById(R.id.noteEditText1);
    savednotes = getSharedPreferences("notes",MODE_PRIVATE);

    savenotebutton1.setOnClickListener(saveButtonListener);
  }

  private void makeTag(String tag)
  {
       String or = savednotes.getString(tag, null);
        SharedPreferences.Editor preferencesEditor = savednotes.edit();
        preferencesEditor.putString(tag,null);
        preferencesEditor.commit();
  }


    public OnClickListener saveButtonListener = new OnClickListener(){

        @Override
        public void onClick(View v) {
            if(editText1.getText().length()>0){
            makeTag(editText1.getText().toString());    

                ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editText1.getWindowToken(),0);

            }


        }

    };

}

【问题讨论】:

    标签: android string button android-edittext sharedpreferences


    【解决方案1】:

    你必须用下面的 cmets 用两个新行来改变你的代码:

    public class enteredText extends Activity{
    
        private Button savenotebutton1;
        private SharedPreferences savednotes;
        private EditText editText1;
    
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            setContentView(R.layout.x1);
    
            savenotebutton1 = (Button) findViewById(R.id.savenotebutton1);
            editText1 = (EditText) findViewById(R.id.noteEditText1);
            savednotes = getSharedPreferences("notes",MODE_PRIVATE);
    
            editText1.setText(savednotes.getString("tag", "Default Value")); //add this line
    
            savenotebutton1.setOnClickListener(saveButtonListener);
        }
    
        private void makeTag(String tag){
           String or = savednotes.getString(tag, null);
            SharedPreferences.Editor preferencesEditor = savednotes.edit();
            preferencesEditor.putString("tag",tag); //change this line to this
            preferencesEditor.commit();
        }
    
        public OnClickListener saveButtonListener = new OnClickListener(){
    
            @Override
            public void onClick(View v) {
                if(editText1.getText().length()>0){
                makeTag(editText1.getText().toString());    
    
                ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(editText1.getWindowToken(),0);
    
                }
            }
        };
    }
    

    【讨论】:

      【解决方案2】:

      改变你的功能:

      private void makeTag(String tag){
              String or = savednotes.getString("KEY_NAME", "0");// here, '0' is default value
              Editor preferencesEditor = savednotes.edit();
              preferencesEditor.putString("KEY_NAME",tag);
              preferencesEditor.commit();
      
          }
      

      编辑

      onCreate()
      {
      savednotes=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
       }
      

      【讨论】:

      • 不起作用..我应该更改 onCreate 这一行:savednotes = getSharedPreferences("notes",MODE_PRIVATE);
      • 我会努力的,我会告诉你的..:D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多