2012-12-01 66 views
1

我刚开始Android开发。我有一个非常简单的项目。我有一个按钮和一个textview。当我点击按钮时,textView的文本发生变化,并且按钮被禁用。这部分工作正常。但是,如果我按下手机上的家中(退出键盘)并返回到我的应用程序,我希望按钮保持其状态(禁用状态)。但在我的情况下,每当我按下home并回到我的应用程序时,Button都会启用。这里是代码按钮未保存状态onResume

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


} 

建议,欢迎。 感谢

+0

请阅读活动生命周期文档,特别是onPause()和onResume()。 – Simon

+0

你的问题得到解决或不? –

+0

您是否尝试调试检查的值? –

回答

0

也只是找到了解决办法。我正在退出应用程序,而不是暂停它。实际上,我在提示键盘上的ESC按钮返回到HOME屏幕,实际上它相当于Android中的BACK按钮,在我的情况下,我想应用程序正在退出,所以每当我再次点击应用程序图标时,onCreate事件被调用而不是onResume。

键盘上的BTW HOME按钮用作Android HOME按钮。