簡體   English   中英

從單選按鈕將數據從一個活動發送到另一個活動

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM