【问题标题】:How to save and reopen layouts in an android app?如何在 Android 应用中保存和重新打开布局?
【发布时间】:2014-02-02 19:31:03
【问题描述】:

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

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:我编辑了应该打开已保存布局的活动的第一个代码,但按钮仍然打开一个黑色活动..

【问题讨论】:

  • 我不明白到底是什么问题。是您的偏好没有被保存,还是您不知道如何根据偏好动态打开活动?
  • 第二个是我的问题..我不知道如何打开我保存的内容,或者它没有打开我保存的内容..当我打开包含第一个代码的活动时,活动打开的是空白,只有黑色背景,仅此而已..

标签: android android-layout favorites clique-problem


【解决方案1】:

假设一旦保存了首选项,下次用户打开应用程序时,您希望它启动不同的 Activity..

最简单的方法是从 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() 的方式有关。

【讨论】:

  • 仍然是相同的黑色背景..该死的..您不能查看将布局保存到收藏夹的代码吗..?也许也有问题......或者......如果你想创建一个这样的应用程序,带有一个最喜欢的按钮,它保存当前布局以由另一个按钮打开......你会怎么做......?您是否认为代码可能不正确..?你可以检查一下吗?非常感谢。
  • 当然,要么在此处发布代码,要么让我知道您是否有公开回购。如果您需要,我的联系信息在我的个人资料中。
  • 代码在第一篇文章中。第一个代码是打开该布局的代码,第二个代码保存了布局..你认为这样可以吗?
  • 一些事情。首先,那里没有任何代码可以实际打开活动,所以我看不到你在做什么。另外,我没有看到其他活动的 onCreate ,所以我无法判断您是否正确打开了布局,第三我看不到这两种方法是如何被调用的。因此,没有足够的信息来了解问题所在。您是否在某处发布了完整的项目?
  • 我很抱歉我上传它的方式,但仍然需要一些时间才能将它上传到 github.. 这是链接:girlshare.ro/33238334.8 .. 与我的布局相一致的活动想要保存的称为 DoispeA,Favorite 是应该打开保存的布局的活动。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
相关资源
最近更新 更多