2013-02-01 42 views
0

我編寫了一個包含選項按鈕和選項活動的應用程序。 在OptionActivity中,您可以選擇使用togglebutton播放音樂「開」或「關」。還有一些檢查按鈕。 直到這裏所有東西都是okey,但是當您選中某個框並返回到主菜單並再次返回選項活動時,您會發現所有變量都是默認值。例如,選中的框被取消選中。我知道,那是因爲everyCall的新意向選項的活動,但我想知道,開始的活動「而無需使用新的意向書」活動損失信息

這是我特別畫面

公共類MainActivity擴展活動{

/* (non-Javadoc) 
* @see android.app.Activity#onCreate(android.os.Bundle) 
*/ 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.baslangic); 

    Thread thred=new Thread(){ 
public void run(){ 
    try { 

     sleep(5000); 

     startActivity(new Intent("com.KAYA.ingilizce_gelistirme.OPTIONS")); 

     startActivity(new Intent("com.KAYA.ingilizce_gelistirme.BASLANGIC")); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    }finally{ 
     finish(); 

    } 
} 
}; 
thred.start(); 

} 

}

這是我的主要ACTİVTY包含選項按鈕

公共類BaslangicË xtends活動{

@Override 
protected void onStart() { 
    // TODO Auto-generated method stub 
    super.onStart(); 



} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button start=(Button)findViewById(R.id.button1); 
    Button options=(Button)findViewById(R.id.button2); 
    Button about=(Button)findViewById(R.id.button3); 

    start.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      startActivity(new Intent("com.KAYA.ingilizce_gelistirme.OYUN")); 

     } 
    }); 
    options.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      finish(); 

     } 
    }); 

    about.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent("com.KAYA.ingilizce_gelistirme.ABOUT")); 

     } 
    }); 

} 

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

}

,這是我選擇的活動

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.options); 
    it=(RadioButton)findViewById(R.id.radio0); 
    ti=(RadioButton)findViewById(R.id.radio1); 
    final ToggleButton but=(ToggleButton)findViewById(R.id.toggleButton1); 
    music=MediaPlayer.create(Options.this, R.raw.avril); 


    but.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if(but.isChecked()) 
      music.start(); 
      else 
      music.pause(); 

     } 
    }); 
    it.setChecked(true); 
    Button menu=(Button)findViewById(R.id.button1); 
    menu.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      startActivity(new Intent("com.KAYA.ingilizce_gelistirme.BASLANGIC")); 
     } 
    }); 

} 

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 


    startActivity(new Intent("com.KAYA.ingilizce_gelistirme.BASLANGIC")); 
    } 
@Override 
protected void onPause() { 

    super.onPause(); 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
} 

}

注:請注意,當用戶點擊選項按鈕,我調用finish( ),實際上我有一個解決方案。我的解決方案是,在啓動畫面之後,我開始2個活動;第一個選項後面的菜單,當用戶點擊選項按鈕,我打電話給完成(),所以我在選項按鈕:D和當按回來我叫新的意圖(菜單),你可以看到選項活動, 所以我問題已經解決,但我想知道應該有一個解決方案不同於這種方式,如果你知道請幫助我。 :)

+0

需要顯示相關代碼。當您退出選項活動時,將調用onPause()方法,當您返回其onResume()方法時將被調用。根據代碼中設置選項的位置,您將擁有默認值或用戶選擇的值。 – Luis

+0

我編輯了我的代碼,你可以澄清它嗎? –

回答

0

您是使用PreferenceActivity還是正常的Activity超類?

無論如何,一定要閱讀有關SharedPreferences - 它可以存儲您的整個應用程序或單個活動的值。

+0

我在這裏發佈了相關代碼,那麼你可以再次使用ccheck嗎? –