私はここです。私はフランス語なので、おそらく私の英語はあまり良くありません。申し訳ありません。SharedPreferencesボタンをクリックした後にボタンの表示を非表示にして別のボタンが表示されるようにします
私はAndroid開発の初心者です。私は研究を終えるためのアプリケーションを作成しなければなりません。
VoeuxActivity.javaという8つのボタン(および8つのTextViews)を持つアクティビティ番号1があります。ユーザーがINVISIBLEでボタンを変更したときに、最初はすべてVISIBLEです。ボタンをクリックした後)、私は、アプリケーションを終了し、再び私のアプリに戻ってくると、SharedPreferencesとこのフォーラムのメンバーのおかげで、ボタンは常に見えなくなります。しかし、私は今、私がこのボタンをクリックしたときに "totoB"をクリックすると、それは見えなくなり、PersoActivity.javaという別のアクティビティナンバー2にVisibleが表示されます。アクティビティ1では不可視になり、2つのキャラクタを選択するためにアクティビティ2に表示されます(ブーリアンの名前は "isClicked"です)。しかし、SharedPreferencesを使用して、それはまったく動作しません。 新しい文字がロックされているときに、アプリを終了して再びアプリに戻ったときに、新しい文字のアンロックは表示されずに非表示になりますが、彼はいつもSharedPreferencesによって表示されるようにします。最初のアクティビティに同じボタンを表示して、2回目のアクティビティ(私は最初のアクティビティと同じことを試みますが、私の解決策は動作しません)の裁判所コードを投稿します。
最初のアクティビティのコードがchangementsを仕事と保存することができます:
public class VoeuxActivity extends Activity {
Button totoB;
TextView totoTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voeux);
final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
totoB = (Button) findViewById(R.id.perso1);
totoTv = (TextView) findViewById(R.id.perso1Text);
totoB.setVisibility(prefs.getBoolean("isTotoBVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoTv.setVisibility(prefs.getBoolean("isTotoTVVisible", true) ? View.VISIBLE : View.INVISIBLE);
totoB.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
prefs.edit().putBoolean("isTotoBVisible", false).apply();
prefs.edit().putBoolean("isTotoTVVisible", false).apply();
totoB.setVisibility(View.INVISIBLE);
totoTv.setVisibility(View.INVISIBLE);
Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class);
startActivity(intentToto);
}
});
}
私は2番目の活動のために同じことをしようが、それはこのタイムで働くことができない、changementが保存されていません。
パブリッククラスPersoActivityアクティビティを拡張{
public static Personnage p1, p2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_perso);
final SharedPreferences prefs = getSharedPreferences("sharedPreferences", Context.MODE_PRIVATE);
final Button totoPersoBtn = (Button) findViewById(R.id.perso1);
final TextView totoPersoTv = (TextView) findViewById(R.id.perso1Text);
totoAdversaireBtn = (Button) findViewById(R.id.adversaire1);
totoAdversaireTv = (TextView) findViewById(R.id.adversaire1Text);
totoPersoBtn.setVisibility(prefs.getBoolean("isTotoPersoBtnInvisible", true) ? View.INVISIBLE : View.VISIBLE);
totoPersoTv.setVisibility(prefs.getBoolean("isTotoPersoTvInvisible", true) ? View.INVISIBLE : View.VISIBLE);
totoAdversaireBtn.setVisibility(真prefs.getBoolean( "isTotoAdversaireBtnInvisible")View.INVISIBLE:View.VISIBLE)。
totoAdversaireTv.setVisibility(prefs.getBoolean( "isTotoAdversaireTvInvisible"、true)?View.INVISIBLE:View.VISIBLE);
if(VoeuxActivity.isClicked) {
prefs.edit().putBoolean("isTotoPersoBtnInvisible", false).apply();
prefs.edit().putBoolean("isTotoPersoTvInvisible", false).apply();
prefs.edit().putBoolean("isTotoAdversaireBtnInvisible", false).apply();
prefs.edit().putBoolean("isTotoAdversaireTvInvisible", false).apply();
totoPersoTv.setVisibility(View.VISIBLE);
totoPersoBtn.setVisibility(View.VISIBLE);
totoAdversaireBtn.setVisibility(View.VISIBLE);
totoAdversaireTv.setVisibility(View.VISIBLE);
} else {
totoPersoBtn.setVisibility(View.INVISIBLE);
totoPersoTv.setVisibility(View.INVISIBLE);
totoAdversaireBtn.setVisibility(View.INVISIBLE);
totoAdversaireTv.setVisibility(View.INVISIBLE);
}}}
ボタンとTextViewの変更を2番目のアクティビティでVisibleからInvisibleに保存するにはどうすればよいですか? 誰かが私を助けることができれば本当にありがとうございます。私は本当になぜそれが全く機能しないのか分からないからです。 ギグ
は、あなたがコミットの代わりに適用されます使用してみましたか?コミットはメモリ内を移動するのではなく、変更をストレージに直接追加するためです。 – uncannyj
ああ本当ですか?私はそれを知らないのですか?私は何がコミットされているのか分からない?何を正確に意味するのですか?例を書いてもいいですか? –
"apply()"を "commit()"に置き換えようとしましたが、動作しません。保存はありません –