2015-09-07 15 views
0

如何在觸摸屏關閉後禁用某項活動的新實施?如何在觸摸屏關閉後禁用活動的新實施?

注意:設備未關閉,但觸摸屏已關閉。

例如,請參見下面的代碼,當我們點擊imageView對象上,在任何時間,增加1單元到textView對象的值。如果我們在imageView對象上單擊十次,則textView對象將具有10值。現在如果我不點擊觸摸屏,結果觸摸屏將關閉。現在,當我想打開觸摸屏時,textView對象值爲0。雖然它應該仍然具有相同的10值。

public class MainActivity extends Activity { 

    ImageView imageView; 
    Integer integer = 0; 
    TextView textView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 
     imageView = (ImageView) findViewById(R.id.imageView); 
     textView = (TextView) findViewById(R.id.textView); 
     textView.setText(integer.toString()); 
     imageView.setOnClickListener(new View.OnClickListener() {@Override 
      public void onClick(View v) { 
       integer = integer + 1; 
       textView.setText(integer.toString()); 
      } 
     }); 
    } 

} 
+0

,我們可以知道這是你的問題呢?這真的很難找到你的問題 – Sree

+0

當'textView'的值是'10',然後當設備睡覺,現在當我想再次看到我的活動時,'textView'的值是'0'。 – and

+1

你需要在onPause()中保存你的活動狀態 –

回答

1

你必須使用到的onSaveInstanceState保存狀態

public class MainActivity extends Activity { 

    ImageView imageView; 
    Integer integer = 0; 
    TextView textView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_main); 
     imageView = (ImageView) findViewById(R.id.imageView); 
     textView = (TextView) findViewById(R.id.textView); 
     if (savedInstanceState!=null) { 
      integer = savedInstanceState.getInt("count"); 
     } 
     textView.setText(integer.toString()); 
     imageView.setOnClickListener(new View.OnClickListener() {@Override 
      public void onClick(View v) { 
       integer = integer + 1; 
       textView.setText(integer.toString()); 
      } 
     }); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putInt("count", integer); 
    } 

} 

http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState

+0

http://developer.android.com/reference/android/app /Activity.html 請注意,將持久數據保存在onPause()而不是onSaveInstanceState(Bundle)中非常重要,因爲後者不是生命週期回調的一部分,所以不會在其文檔中描述的每種情況下調用。 –

+0

如果它是**持續** –