尝试从设置活动中更改主活动中按钮的意图我该怎么做?
这就是我想做的事,但我不知道如何完成它
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{
}
}
答案 0 :(得分:0)
在XML文件中,将onClick属性添加到RadioButtons。传递一个函数,例如" 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, "");