如何在Android应用程序中保存和重新打开布局?

时间:2014-02-02 19:31:03

标签: android android-layout favorites clique-problem

我仍然面对一个最喜欢的按钮,它应该保存我的布局并将布局设置为新活动的布局。问题是我的活动应该打开我保存的布局,不会这样做,但我不明白为什么..这是我的代码:

public void AddToFavoriteListener(final View v){
        SharedPreferences prefs=getSharedPreferences("MYPREF",MODE_PRIVATE);
        int favActivity=prefs.getInt("FAV_ACTIVITY", 0);

        switch(favActivity){
        case 0:
            Toast.makeText(getApplication(),"Favorite not set.",Toast.LENGTH_SHORT).show();
            break;
        case 1:
            //code to open first activity
            break;
        case 2:
            //code to open second activity
            break;
        }
        return;

以下是保存布局的代码:

public void AddToFavorite(View v){    
            SharedPreferences pref=getSharedPreferences("MYPREF",MODE_PRIVATE);
            SharedPreferences.Editor editor=pref.edit();
            int activityNum = 0;
            editor.putInt("FAV_ACTIVITY", activityNum);
            editor.commit();
        }

非常感谢!

L.E:我编辑了活动的第一个代码,该代码应该打开保存的布局,但按钮仍然会打开黑色活动..

1 个答案:

答案 0 :(得分:0)

假设保存首选项后,下次用户打开应用程序时,您希望它启动其他活动..

最简单的方法是从onCreate()中获取首选项,然后打开正确的活动。例如,从onCreate()中调用它:

private void openFromFavorites() {
        SharedPreferences prefs=getSharedPreferences("MYPREF",MODE_PRIVATE);
        int favActivity=prefs.getInt("FAV_ACTIVITY", 0);

        switch(favActivity){
        case 0:
            Toast.makeText(getApplication(),"Favorite not set.",Toast.LENGTH_SHORT).show();
            break;
        case 1:
            Intent intent = new Intent(this, ActivityForPref1.class );
            startActivity(intent);
            finish();
            break;
        case 2:
            Intent intent = new Intent(this, ActivityForPref2.class );
            startActivity(intent);
            finish();
            break;
        }
}

如果你已经这样做了,但是新活动只是空白,那么它可能与你调用setContentView()的方式有关。