Android studio Getsharedpreferences(Android studio Getsharedpreferences)
我在论坛上闲逛,看到很多用户正在寻找在文本字段中使用共享偏好的方法,并永久保存,而不必使用“呼叫”按钮。 我是thosse用户之一hehe ..现在我有一个用户名字段,我可以点击按钮“保存”以保存数据但是当我重新启动应用程序时,来自userfield(textfield)的数据消失了,我必须使用另一个按钮将数据“调用”回现场。 如何更改代码,以便在您单击保存刚刚写入的数据时,在重新启动应用程序时保留该数据。 我检索数据的代码如下所示。 “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); }
}
I have wandering around forums and seen plenty of users looking for a way to use sharedpreferences in a textfield and save it permanently and not having to use a "call" button. I am one of thosse users hehe.. Right now i have a username field where i can click on a button "save" to save the data but when i restart the app the data from the userfield (textfield) is gone and i have to use another button to "call" the data back to the field. How do i change the code so when you click save the data you just wrote in stays there when you restart the app. My code for retrieving the data looks like this. The "for123" is the onclick for the call button.
} //Hämta nummer knappen public void for123(View view){ SharedPreferences sharedPref = getSharedPreferences("userInfo", Context.MODE_PRIVATE); String name = sharedPref.getString("username", ""); numTxt.setText(name + " "); }
this is almost the whole mainActivityjava file, didn't know how to import the start of the java file hehe..
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); }
}
原文:https://stackoverflow.com/questions/39417009