关于OnResume的问题

Nabati 2016-08-24 02:17:21
在另一个activity之中选择选项,获取boolean值,返回mainactivity后调用onResume,在onResume中用获取的boolean判断应该变成那种功能(两个功能在一个acivity里写的 重力感应和非重力感应)但是发现在默认功能没有问题。 但是选择另一种模式的时候,两种功能的函数都被调用了,就还留在默认模式下,求解决!

主要代码如下:
public class MainActivity extends AppCompatActivity {
private TextView textView;
MyView mAnimView = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout root = (LinearLayout) findViewById(R.id.root);
final DrawView draw = new DrawView(this);
draw.setMinimumWidth(300);
draw.setMinimumHeight(500);
root.addView(draw);
}


@Override
public void onResume(){
SharedPreferences modle = getSharedPreferences("MODEL", Context.MODE_PRIVATE);
boolean x = modle.getBoolean("model",true);
Log.v("现在的boolean为:"," "+x);
if(x==false){
LinearLayout root = (LinearLayout) findViewById(R.id.root);
Log.v("执行了1:"," "+x);
final MyView mAnimView = new MyView(this);
root.addView(mAnimView);
}
else{

LinearLayout root = (LinearLayout) findViewById(R.id.root);
final DrawView draw = new DrawView(this);
draw.setMinimumWidth(300);
draw.setMinimumHeight(500);
root.addView(draw);
Log.v("执行了2"," "+x);
}
super.onResume();
}

求大神解决!
...全文
278 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
a784063999 2016-08-24
  • 打赏
  • 举报
回复
引用 4 楼 weixin_35771961 的回复:
[quote=引用 3 楼 a784063999 的回复:]
    public void onResume(){
        SharedPreferences modle = getSharedPreferences("MODEL", Context.MODE_PRIVATE);
        boolean x = modle.getBoolean("model",true);
        Log.v("现在的boolean为:","      "+x);
        if(!x) {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            Log.v("执行了1:","      "+x);
            root.removeAllViews();
            mAnimView = new MyView(this);
            root.addView(mAnimView);
        }  else {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            root.removeAllViews();
            final DrawView draw = new DrawView(this);
            draw.setMinimumWidth(300);
            draw.setMinimumHeight(500);
            root.addView(draw);
            Log.v("执行了2","      "+x);
        }
        super.onResume();
    }
改成這樣看看
运行完onResume好像还要回头再运行一遍onCreat,是不是这样啊? 因为Log出模式1的文字两遍......[/quote] 我調試只執行了一次onResume(), 不過有可能你的Activity被系統殺了才會調用onCreate()
Nabati 2016-08-24
  • 打赏
  • 举报
回复
引用 3 楼 a784063999 的回复:
    public void onResume(){
        SharedPreferences modle = getSharedPreferences("MODEL", Context.MODE_PRIVATE);
        boolean x = modle.getBoolean("model",true);
        Log.v("现在的boolean为:","      "+x);
        if(!x) {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            Log.v("执行了1:","      "+x);
            root.removeAllViews();
            mAnimView = new MyView(this);
            root.addView(mAnimView);
        }  else {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            root.removeAllViews();
            final DrawView draw = new DrawView(this);
            draw.setMinimumWidth(300);
            draw.setMinimumHeight(500);
            root.addView(draw);
            Log.v("执行了2","      "+x);
        }
        super.onResume();
    }
改成這樣看看
运行完onResume好像还要回头再运行一遍onCreat,是不是这样啊? 因为Log出模式1的文字两遍......
a784063999 2016-08-24
  • 打赏
  • 举报
回复
    public void onResume(){
        SharedPreferences modle = getSharedPreferences("MODEL", Context.MODE_PRIVATE);
        boolean x = modle.getBoolean("model",true);
        Log.v("现在的boolean为:","      "+x);
        if(!x) {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            Log.v("执行了1:","      "+x);
            root.removeAllViews();
            mAnimView = new MyView(this);
            root.addView(mAnimView);
        }  else {
            LinearLayout root = (LinearLayout) findViewById(R.id.root);
            root.removeAllViews();
            final DrawView draw = new DrawView(this);
            draw.setMinimumWidth(300);
            draw.setMinimumHeight(500);
            root.addView(draw);
            Log.v("执行了2","      "+x);
        }
        super.onResume();
    }
改成這樣看看
Nabati 2016-08-24
  • 打赏
  • 举报
回复
引用 1 楼 liangyong007a 的回复:
你确认你SharedPreferences 中存入值并提交了吗?参数key都对吗?
SharedPreferences 都存入了。打印都没有问题的
liangyong007a 2016-08-24
  • 打赏
  • 举报
回复
你确认你SharedPreferences 中存入值并提交了吗?参数key都对吗?

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧