Android studio Getsharedpreferences

时间:2016-09-09 17:40:20

标签: java android xml save

我在论坛上闲逛,看到很多用户在文本字段中寻找使用共享偏好的方法并永久保存,而不必使用"调用"按钮。我是其中一个用户嘿嘿..现在我有一个用户名字段,我可以点击一个按钮"保存"保存数据,但是当我重新启动应用程序时,来自用户字段(文本字段)的数据消失了,我必须使用另一个按钮来调用"数据回到现场。如何更改代码,以便在您单击保存刚刚写入的数据时,在重新启动应用程序时保留该数据。 我检索数据的代码如下所示。 " for123"是呼叫按钮的onclick。

}
//Hämta nummer knappen
    public void for123(View view){
        SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);

        String name = sharedPref.getString("username", "");
        numTxt.setText(name + " ");

}

这几乎是整个mainActivityjava文件,不知道如何导入java文件的开头嘿嘿......

Button sendSMS;
Button sendSMSaon;
Button sendSMSaoff;
Button sendSMSrela1;
Button sendSMSrela2;
EditText msgTxt;
EditText numTxt;
EditText aonTxt;
EditText aoffTxt;
EditText rela1txt;
EditText rela2txt;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    sendSMS = (Button) findViewById(R.id.skicka);
    sendSMSaon = (Button) findViewById(R.id.skickaaon);
    sendSMSaoff = (Button) findViewById(R.id.skickaaoff);
    sendSMSrela1 = (Button) findViewById(R.id.skickarela1);
    sendSMSrela2 = (Button) findViewById(R.id.skickarela2);

    msgTxt = (EditText) findViewById(R.id.Textmeddelande);
    numTxt = (EditText) findViewById(R.id.nummer);
   aonTxt = (EditText) findViewById(R.id.aon);
    aoffTxt = (EditText) findViewById(R.id.aoff);
    rela1txt = (EditText) findViewById(R.id.rela1txt);
    rela2txt = (EditText) findViewById(R.id.relä2txt);

    msgTxt.setVisibility(View.INVISIBLE);
    aonTxt.setVisibility(View.INVISIBLE);
    aoffTxt.setVisibility(View.INVISIBLE);
    rela1txt.setVisibility(View.INVISIBLE);
    rela2txt.setVisibility(View.INVISIBLE);

    sendSMSaoff.setOnClickListener(new View.OnClickListener() {
                                       @Override
                                       public void onClick(View v) {
                                           String mymsgaoff = aoffTxt.getText().toString();
                                           String theNumber = numTxt.getText().toString();
                                           sendMsg(theNumber, mymsgaoff);
                                       }

                                   }

    );

    sendSMSaon.setOnClickListener(new View.OnClickListener() {
                                      @Override
                                      public void onClick(View v) {
                                          String mymsgaon = aonTxt.getText().toString();
                                          String theNumber = numTxt.getText().toString();
                                          sendMsg(theNumber, mymsgaon);
                                      }

                                  }







    );
    sendSMS.setOnClickListener(new View.OnClickListener() {
                                   @Override
                                   public void onClick(View v) {
                                       String myMsg = msgTxt.getText().toString();
                                       String theNumber = numTxt.getText().toString();
                                       sendMsg(theNumber, myMsg);
                                   }

                               }
    );
    sendSMSrela1.setOnClickListener(new View.OnClickListener() {
                                   @Override
                                   public void onClick(View v) {
                                       String myMsgrela1 = rela1txt.getText().toString();
                                       String theNumber = numTxt.getText().toString();
                                       sendMsg(theNumber, myMsgrela1);
                                   }

                               }
    );
    sendSMSrela2.setOnClickListener(new View.OnClickListener() {
                                      @Override
                                      public void onClick(View v) {
                                          String mymsgrela2 = rela2txt.getText().toString();
                                          String theNumber = numTxt.getText().toString();
                                          sendMsg(theNumber, mymsgrela2);
                                      }

                                  }







    );


}

//Sparar numret

public void saveInfo(View view) {
    SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);


    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString("username", numTxt.getText().toString());
    editor.apply();

    Toast.makeText(this, "saved", Toast.LENGTH_LONG).show();



}
//Hämta nummer knappen
    public void for123(View view){
        SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);

        String name = sharedPref.getString("username", "");
        numTxt.setText(name + " ");

}
private void sendMsg(String theNumber, String myMsg)
{
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(theNumber, null, myMsg, null, null);



}

}

2 个答案:

答案 0 :(得分:1)

我最好的建议是在uri生命周期方法中使用您的函数。这样,只要您的应用程序成为焦点,它就会被调用。

它的工作原理如下:

uri.canonize
祝你好运!

答案 1 :(得分:0)

要保存共享偏好设置数据,

public callStopButtonClick(){

 SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();

editor.putString("username", "<value of username>")
editor.commit();

}

在简历上编写代码,

 @Override
    protected void onResume() {
        super.onResume();
        SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE);

        String name = sharedPref.getString("username", "");
        numTxt.setText(name + " ");

    }

我不确定这会对您有所帮助,但我希望这会为您实现目标。