[英]Sending data from radiobutton from one activity to another
我有2個名為MainActivity和DisplayColorsActivity的活動。 MainActivity將選擇DisplayColorsActivity上按鈕的顏色。
運行示例:我在按鈕1上單擊綠色,在按鈕2上單擊紅色,然后單擊確定按鈕。
主要活動:
選擇按鈕1的顏色:o藍色o綠色o紅色
選擇按鈕2的顏色:o藍色o綠色o紅色
[確定按鈕]
DisplayColorsActivity:
[返回按鈕] //this should be color Green
[重置按鈕] //this should be color Red
我的問題是,單擊“確定”按鈕后,我的MainActivity無法轉到DisplayColorsActivity。 任何幫助將不勝感激。謝謝!
我的MainActivity.java
public class MainActivity extends Activity {
private Button okButton;
private RadioGroup colors;
private String color = "#0000ff";
Intent selectedColor;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
selectedColor = new Intent();
okButton = (Button) findViewById(R.id.buttonOk);
colors = (RadioGroup) findViewById(R.id.radioGroupColors1);
colors.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radioRed:
color = "#ff0000";
break;
case R.id.radioBlue:
color = "#0000ff";
break;
case R.id.radioGreen:
color = "#00ff00";
break;
}
}
});
okButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(this, DisplayColorsActivity.class);
intent.putExtra("selectedColor", color);
setResult(RESULT_OK, intent);
startActivity(intent);
finish();
}
});
}
我的DisplayColorsActivity.java:
public class DisplayColorsActivity extends Activity {
private String color = "#ff0000";
private static final int COLOR_SELECTOR=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.colorselector);
Button selectColorButton = (Button) findViewById(R.id.returnButton);
selectColorButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent request =new Intent(DisplayColorsActivity.this, MainActivity.class);
startActivityForResult(request, COLOR_SELECTOR);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case COLOR_SELECTOR:
if(resultCode == RESULT_OK){
String color= data.getExtras().getString("selectedColor");
findViewById(R.id.returnButton).setBackgroundColor(Color.parseColor(color));
}
}
}
當我在MainActivity中單擊“確定”按鈕時, EDIT DisplayColorsActivity已經顯示,但不會顯示我選擇的顏色。
您的第二項活動應該是:-
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class DisplayColorsActivity extends Activity {
private String color = "#ff0000";
private static final int COLOR_SELECTOR=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.colorselector);
Button selectColorButton = (Button) findViewById(R.id.returnButton);
String color= getIntent().getExtras().getString("selectedColor");
selectColorButton.setBackgroundColor(Color.parseColor(color));
selectColorButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent request =new Intent(DisplayColorsActivity.this, MainActivity.class);
startActivity(request);
}
});
}
嘗試在#finish
之后調用#setResult
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.