0
共有設定が設定されている場合は、まずアプリを表示させようとしています。そうでない場合は、入力したページを開き、それを保存しておいて後で使用する必要があります。メインアクティビティが開く(else文が実行される)ため、いくつかの共有設定が見つかったり、コードが間違っているようです。ここで別のクラスからsharedPreferencesを読み込まない
は私Mainactivityです:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean check = sharedPreferences.getBoolean("Check",false);
if(check){
//Intent intent;
Intent SharedPrefsIntent = new Intent(MainActivity.this, SharedPrefs.class);
startActivity(SharedPrefsIntent); }
else {
setContentView(R.layout.activity_main);
TextView brands = (TextView) findViewById(R.id.brands);
そして、ここではSharedPrefsです:
public class SharedPrefs extends MainActivity {
//public static Context context;
EditText ed1,ed2,ed3;
Button b1;
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String Name = "nameKey";
public static final String Phone = "phoneKey";
public static final String Email = "emailKey";
SharedPreferences sharedpreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.shared_prefs);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
ed3=(EditText)findViewById(R.id.editText3);
b1=(Button)findViewById(R.id.button);
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String n = ed1.getText().toString();
String ph = ed2.getText().toString();
String e = ed3.getText().toString();
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.putString(Name, n);
editor.putString(Phone, ph);
editor.putString(Email, e);
editor.commit();
Toast.makeText(SharedPrefs.this,"Thanks",Toast.LENGTH_LONG).show();
}
});
}
}
私は正直でなければならない私は、Javaが共有好みを探したい場所はかなりわからないんだけど、 "これは、アプリの実行を行い、少なくとも。SharedPrefs{}
クラスインサイド
'ブールチェック= sharedPreferences.getBoolean(「チェック」でそれを使用するために、 false); '。あなたはその値を読み取ろうとします。しかし、どこに書いたのですか? – greenapps
この行を置き換えます。 sharedpreferences = getSharedPreferences(MyPREFERENCES、Context.MODE_PRIVATE); by sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this); 非常に最初のgetBoolean()呼び出しはfalseを返します。それに応じて条件文を更新してください。 – Napolean
ありがとう、ありがとうございました。私はあなたの提案にgetSharedPreferencesを変更し、それは動作します。また、getBooleanのif文をif(!check)に変更し、今度はSharedPrefsクラスに移りました。すばらしいです。次に、Submitボタンを押してMainActivityクラスに移動し、それからSharedPrefsクラスに戻します。それでは、Shared Preferencesがあり、MainActivityクラスに行くのを読んではいけませんか? –