2017-04-19 69 views
0

我是新來的。我是法國人,所以也許我的英語不太好,對不起。SharedPreferences在點擊它後保存一個不可見的按鈕

我是Android開發的初學者,爲了完成我的學習,我創建了一個應用程序。

我向你解釋我的問題:我有一個叫做VoeuxActivity.java的活動8個按鈕,它們在開始時都是VISIBLE,當用戶點擊其中一個按鈕時,INVISIBLE改變了(用戶看不到按鈕後點擊它),我沒有問題做到這一點。但我的問題是,當我退出應用程序,然後又回到我的應用程序時,該按鈕再次可見,因此沒有保存在我的應用程序中。 我想我得使用SharedPreferences,但我真的不知道如何使用它。 如果有人能幫助我,我會很開心。 我用一個按鈕和按鈕上方的文本發佈法院代碼(因爲按鈕是背景中的圖像)。我也製作了TextView INVISIBLE,我也想保存更改。

公共類VoeuxActivity延伸活動{

public static boolean isClicked = false; 
Button totoB; 
TextView totoTv; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_voeux); 

    totoB = (Button) findViewById(R.id.perso1); 
    totoTV = (TextView) findViewById(R.id.perso1Text); 
    totoB.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      isClicked = true; 
      totoB.setVisibility(View.INVISIBLE); 
      totoTv.setVisibility(View.INVISIBLE); 
      Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class); 
      startActivity(intentToto); 
     } 
    }); 

}}

如何從可見保存按鈕變化的研究和TextView的有形無形的?

謝謝你的幫助。 吉格斯

回答

1

您可以使用SharedPreferences保存一些設置和信息,爲您的情況按照下面的代碼:

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); 
      } 
     }); 
    } 
+0

謝謝你的喲幫助,但我有一個新的問題你,似乎我不能在這裏再發布一次,我不明白爲什麼,你知道我是否需要創建一個新的主題? –

1

實現你SharedPreferences這樣:

Boolean isFirstTime; 

    SharedPreferences app_preferences = PreferenceManager 
     .getDefaultSharedPreferences(Splash.this); 

SharedPreferences.Editor editor = app_preferences.edit(); 

isFirstTime = app_preferences.getBoolean("isFirstTime", true); 

if (isFirstTime) { 

//implement your first time logic 
//SHow Button 
editor.putBoolean("isFirstTime", false); 
editor.commit(); 

}else{ 
//Invisible button 
//app open directly 
} 
+0

非常感謝你的解決方案 –

1

試試這個,

public static boolean isClicked = false; 
Button totoB; 
TextView totoTv; 
SharedPreferences preferences; 
SharedPreferences.Editor prefsEditor ; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_voeux); 

    preferences = getSharedPreferences("AppPrefs", MODE_PRIVATE); 
    prefsEditor = preferences.edit(); 

    //get value 
    String buttonClick=preferences.getString("ButtonClick", "0"); 
    if(buttonClick.equals("0"))//before button click 
    { 
     totoB.setVisibility(View.VISIBLE); 
     totoTv.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     totoB.setVisibility(View.INVISIBLE); 
     totoTv.setVisibility(View.INVISIBLE); 
    } 

    totoB = (Button) findViewById(R.id.perso1); 
    totoTV = (TextView) findViewById(R.id.perso1Text); 
    totoB.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      isClicked = true; 
      prefsEditor.putString("ButtonClick", "1"); 
      totoB.setVisibility(View.INVISIBLE); 
      totoTv.setVisibility(View.INVISIBLE); 
      Intent intentToto = new Intent(VoeuxActivity.this, JouerActivity.class); 
      startActivity(intentToto); 
     } 
    }); 
} 
+0

謝謝你的幫助,它的工作 –

+0

不客氣..accept ans – user2025187

相關問題