如何更改设置活动的意图?

时间:2016-09-26 15:06:02

标签: android android-intent

尝试从设置活动中更改主活动中按钮的意图我该怎么做?

这就是我想做的事,但我不知道如何完成它

public class Settings extends AppCompatActivity {

RadioButton rdpc, rdps, rdxb;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);

    rdpc = (RadioButton) findViewById(R.id.rdpc);
    rdps = (RadioButton) findViewById(R.id.rdps);
    rdxb = (RadioButton) findViewById(R.id.rdxb);


}

public class changedefactivity extends MainActivity{

}


}

1 个答案:

答案 0 :(得分:0)

在XML文件中,将onClick属性添加到R​​adioButtons。传递一个函数,例如" onRadioButtonClicked"。

<?xml version="1.0" encoding="utf-8"?>
<RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <RadioButton android:id="@+id/radio_pirates"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/pirates"
        android:onClick="onRadioButtonClicked"/>
    <RadioButton android:id="@+id/radio_ninjas"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/ninjas"
        android:onClick="onRadioButtonClicked"/>
</RadioGroup>

然后,在托管布局的活动中,创建一个处理单选按钮的click事件的方法:

public void onRadioButtonClicked(View view) {
    // Is the button now checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.radio_pirates:
            if (checked)
                // Pirates are the best
            break;
        case R.id.radio_ninjas:
            if (checked)
                // Ninjas rule
            break;
    }
}

在switch语句中,您可以使用以下内容添加意图:

Intent radioIntent = new Intent(this, MainActivity.class);
//Pass any extras in
startActivity(radioIntent);

我不太确定你的代码应该如何组织。 首先,最佳做法会让您的 SettingsActivity 扩展 PreferenceActivity (或针对Android 3.0及更高版本的 PreferenceFragment ):

public class SettingsActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }
}

通过该活动,用户可以切换/设置/声明可以通过SharedPreferences保存的某些设置,您可以使用PreferenceManager通过app / MainActivity访问这些设置:

SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String syncConnPref = sharedPref.getString(SettingsActivity.KEY_PREF_SYNC_CONN, "");

Documentation for SettingsActivity