未從共享首選項獲得值textview。 查看代碼。 是否有任何錯誤。 而正是在下面的代碼兩行之間的區別...顯示在共享首選項中輸入的值未顯示在textView中
sharedPreferences = getSharedPreferences("Mypreferences",Context.MODE_PRIVATE);
和
sharedPreferences=PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
以下是我的代碼行..
public class MainActivity extends AppCompatActivity {
EditText et_name, et_phon, et_email, et_city;
Button button_submit, button_show;
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
TextView tv_name,tv_phone,tv_email,tv_city;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initComponents();
sharedPreferences = getSharedPreferences("Mypreferences", Context.MODE_PRIVATE);
button_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name, phon, email, city;
name = et_name.getText().toString().trim();
phon = et_phon.getText().toString().trim();
email = et_email.getText().toString().trim();
city = et_city.getText().toString().trim();
editor = sharedPreferences.edit();
editor.putString("NameKey", name);
editor.putString("phoneKey", phon);
editor.putString("emailKey", email);
editor.putString("cityKey", city);
editor.apply();
Toast.makeText(MainActivity.this, "Submitted", Toast.LENGTH_SHORT).show();
}
});
button_show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
String n = sharedPreferences.getString("NameKey", null);
String p = sharedPreferences.getString("phoneKey", null);
String e = sharedPreferences.getString("emailKey", null);
String c = sharedPreferences.getString("cityKey", null);
tv_name.setText(n);
tv_phone.setText(p);
tv_email.setText(e);
tv_city.setText(c);
Toast.makeText(MainActivity.this, "Show button clicked", Toast.LENGTH_SHORT).show();
}
});
}
private void initComponents() {
et_name = (EditText) findViewById(R.id.et_name_main);
et_phon = (EditText) findViewById(R.id.et_phone_main);
et_email = (EditText) findViewById(R.id.et_email_main);
et_city = (EditText) findViewById(R.id.et_city_main);
tv_name = (TextView) findViewById(R.id.tv_name_main);
tv_phone = (TextView) findViewById(R.id.tv_phone_main);
tv_email = (TextView) findViewById(R.id.tv_email_main);
tv_city = (TextView) findViewById(R.id.tv_city_main);
button_submit = (Button) findViewById(R.id.btn_submit_main);
button_show = (Button) findViewById(R.id.btn_view_main);
}
}
任何類型的幫助表示讚賞。
這只是創建兩個不同的sharedPreferences.xml。默認情況下,在您的應用程序directoy中命名爲shared_preferences,另一個在您的情況下使用「mypreferences」命名。 MODE_PRIVATE表示沒有其他應用可以輸入它。 – Opiatefuchs
您正在保存在SharedPreferences的不同實例中,並在缺省情況下進行檢索。在放置和檢索時,使用'getSharedPreferences(「Mypreferences」,Context.MODE_PRIVATE)'或默認值。 – VenomVendor
Thanxx。在這個論據中,你們清楚了我的觀點,我想知道關於MODES的事情。 –