1

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

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();
        }

非常感谢 !

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

4

1 回答 1

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() 的方式有关。

于 2014-02-02T21:38:49.140 回答