![](/img/trans.png)
[英]How to display EditText input in another activity when Radio Button is checked?
[英]How to check which radio button is checked in another activity, and then use in IF Statement?
我正在開發一個健身應用程序。 在我的設置活動中,我創建了選擇英里或公里的選項,如下所示。 [圖像單選按鈕][1]
然后是我的 run_interface 活動。 [距離文本視圖][2]
如果有人點擊英里單選按鈕(在設置活動中),距離應該輸出 run_interface 活動中指定的 distanceInmiles 方法,如果他們點擊 km 單選按鈕,距離應該輸出 distanceInkilometers 方法
這是我的設置活動
public class settings extends AppCompatActivity {
RadioGroup distancebtn_group;
RadioButton miles_btn;
RadioButton kilometer_btn;
RadioButton distance_button_clicked;
RadioButton radioButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
distancebtn_group = findViewById(R.id.distance_btn_group);
public void buttonCheck(View view) {
boolean buttonChecked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case R.id.miles_btn:
if (buttonChecked)
break;
case R.id.kilometer_btn:
if (buttonChecked)
break;
這是我的 run_interface:
@Override
public void onLocationChanged(Location location) {
curr_location = location;
if (start_location == null) {
start_location = curr_location;
end_location = curr_location;
} else
end_location = curr_location;
//(Update UI here(could be distanceInMiles or distanceInkilometers, depending on button selected)
distance_counter.setText(new DecimalFormat("0.00").format(distance));
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
private void distanceInMeters() {
distance = distance + (start_location.distanceTo(end_location));
start_location = end_location;
}
private void distanceInMiles() {
distance = distance + (start_location.distanceTo(end_location) * 0.00062137);
}
private void distanceInkilometers() {
distance = distance + (start_location.distanceTo(end_location) / 1000);
start_location = end_location;
無論您在設置中提供了什么選項,您都應該將它們保存在某處,對嗎? 從保存的數據中獲取值並驗證 if 檢查。
您可以為此目的使用 SharedPreferences
首先定義radioButton clicklistener。
radiobutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(radioButton.isChecked()){
SharedPreferences pref = mContext.getSharedPreferences("MyPref", 0); // 0 - for private mode
SharedPreferences.Editor editor = pref.edit();
editor.putString("radiobutton", "checked");
editor.commit();
}
}
});
在第二個活動中
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
String radiobutton = pref.getString("radiobutton", null);
if(radiobutton.equals("checked){
//run your code
}
這將工作正常......
終於找到解決辦法
@Override
public void onLocationChanged(Location location) {
curr_location = location;
if (start_location == null) {
start_location = curr_location;
end_location = curr_location;
} else
end_location = curr_location;
ChooseMetricUnits();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
private void distanceInMeters() {
distance = distance + (start_location.distanceTo(end_location));
start_location = end_location;
}
private void distanceInMiles() {
distance = distance + (start_location.distanceTo(end_location) * 0.00062137);
distance_counter.setText(new DecimalFormat("0.00").format(distance) + " Miles");
}
private void distanceInkilometers() {
distance = distance + (start_location.distanceTo(end_location) / 1000);
start_location = end_location;
distance_counter.setText(new DecimalFormat("0.00").format(distance) + " km");
}
private void ChooseMetricUnits() {
final SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences(GetInfo, MODE_PRIVATE);
final Boolean MetricUnit = sharedPreferences.getBoolean(settings.KMBTN, true);
if(MetricUnit) {
distanceInkilometers();
} else
distanceInMiles();
}
}
我剛剛從第一個活動(設置)中提取了一個布爾值(KMBTN),並在選中相應按鈕時使用它來調用正確的方法。
為了檢查它是否有效,我在公里無效方法中添加了“km”,在英里無效方法中添加了“英里”。
我希望這對將來遇到同樣問題的人有所幫助。
爪哇機器人
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.