2012-03-07 27 views
1

こんにちは、私はグリッド表示のための簡単なデモをやっています。私はレイアウトの変更に関する問題があります。オリエンテーションモードを変更すると、GridVIewがリセットされます。

私のデモがladscapeモードで動作しているときに、チェックボックスの値が保存されます。しかし、私は方向を任意のモードに変更します。再びonCreate()メソッドを呼び出してすべての値をリセットします。 anybdyは私に示唆することができます。方向が変更された後に値を保持する方法。ここで

は私のコードです:

btnSubmit = (Button) findViewById(R.id.editButton); 
     btnSubmit.setOnClickListener(this); 


     gridview.setAdapter(new ImageAdapter(this, status)); 
     gridview.setOnItemClickListener(new OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View v, 
        int position, long id) { 

       ImageView imgview = (ImageView) v.findViewById(R.id.imgvew); 
       imgview.setImageResource(R.drawable.check_box_checked); 
      } 

     }); 



@Override 
    public void onConfigurationChanged(android.content.res.Configuration newConfig) { 

     if (newConfig.ORIENTATION_LANDSCAPE == Configuration.ORIENTATION_PORTRAIT){ 

     } 
    }; 


@Override 
    public void onClick(View v) { 
       status = true; 
     GridView gridview = (GridView) findViewById(R.id.gridview); 
     gridview.setAdapter(new ImageAdapter(this, status)); 
      } 

答えて

0

代わりにOnCreateイベントであなたのGridViewのアダプタを設定するのでonResumeですべてのコードを入れて()それが正常に動作します。..

+0

3月7日17:46:50.303:E/AndroidRuntime(1112):java.lang.RuntimeException:{com.thumbnail/com.thumbnail.ThumbnailProjectActivity}活動を再開することができません:android.app.SuperNotCalledException:アクティビティ{c om.thumbnail/com.thumbnail.ThumbnailProjectActivity}がsuper.onResume()にコールしなかった 03-07 17:46:50.303:E/AndroidRuntime(1112):\t android.app.ActivityThread.performResumeActivity(ActivityThread.java) :2215) 03-07 17:46:50.303:E/AndroidRuntime(1112):\t(android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2243) 03-07 17:46:50.303:E/AndroidRuntime 1112):\t( –

+0

)super.onResume();オーバーライドされたonResumeメソッドの最後まで –

0

次の2つのメソッドをオーバーライドする必要があります。

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    // Read values from the "savedInstanceState"-object and put them in your textview 
    if (icicle != null) 
    { 
     value = icicle.getLong("param"); 
    } 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    // Save the values you need from your textview into "outState"-object 
    outState.putLong("param", value); 
    super.onSaveInstanceState(outState); 
} 
関連する問題