按钮未保存状态onResume

时间:2012-12-01 08:14:46

标签: java android eclipse android-activity onresume

我刚刚开始Android开发。我有一个非常简单的项目。我有一个按钮和一个textview。单击该按钮时,textView的文本将更改,并且按钮将被禁用。这部分工作正常。但是我希望按钮保持其状态(禁用状态),如果我在手机上按家(键盘上的逃生)并返回我的应用程序。但就我而言,每次按回家并返回我的应用程序时,Button都会启用。这是代码

package com.mypack.textmanipulation;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.*;

public class MainActivity extends Activity {

    private Button btnChangeText;
    private boolean check;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnChangeText = (Button)findViewById(R.id.btnChangeText);
        check = true;

        setButtonOnClickInterface();

    }

    @Override
    protected void onResume()
    {
        super.onResume();
        checkButtonIsEnabled();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) 
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    private void setButtonOnClickInterface()
    {

        btnChangeText.setOnClickListener(new View.OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {

                    // TODO Auto-generated method stub
                    TextView txtView = (TextView)findViewById(R.id.textView1);
                    txtView.setText("Text Changed");
                    btnChangeText.setEnabled(false);
                    check = false;
            }
        });

    }

    private void checkButtonIsEnabled()
    {
        if (check)
        {
            btnChangeText.setEnabled(true);

        }
        else
        {
            btnChangeText.setEnabled(false);
        }
    }


}

欢迎提出建议。 感谢

2 个答案:

答案 0 :(得分:0)

在项目中使用共享首选项来存储值check this

答案 1 :(得分:0)

刚刚找到了解决方案。我正在退出应用程序而不是暂停它。实际上我正在按键盘上的ESC按钮返回到HOME屏幕,这实际上相当于Android中的BACK按钮,在我的情况下,我猜,应用程序正在退出,所以每次我再次点击应用程序图标时,onCreate调用了event而不是onResume。

键盘上的BTW HOME按钮充当Android HOME按钮。