0

我编写了一个包含选项按钮和选项活动的应用程序。在 OptionActivity 中,您可以使用切换按钮选择“打开”或“关闭”播放音乐。还有一些检查按钮。直到这里一切正常,但是当您选中某个框并返回主菜单并再次返回选项活动时,您会发现所有变量都是默认值。例如,复选框一未选中。我知道这是因为everyCall 带有新意图的选项活动,但我想知道“不使用新意图”开始活动

这是我的启动画面

公共类 MainActivity 扩展 Activity {

/* (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();

}

}

这是我的主要活动,其中包含选项按钮

公共类 Baslangic 扩展 Activity {

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

}

注意:请注意,当用户单击选项按钮时,我调用完成(),实际上我有一个解决方案。我的解决方案是,在启动画面之后,我开始 2 个活动;第一个选项稍后菜单,当用户单击选项按钮并调用完成()时,我在选项按钮中:D,当按下返回时,我调用了新意图(菜单),您可以在 OPTIONS 活动中看到,所以我的问题已经解决了,但我想知道应该有一个不同于这种方式的解决方案,如果你知道请帮助我。:)

4

1 回答 1

0

您使用的是 PreferenceActivity 还是普通的 Activity 超类?

无论如何,请务必阅读 SharedPreferences - 它可以为整个应用程序或单个活动存储您的值。

于 2013-02-02T00:07:29.427 回答