Android 一个结果活动与多个活动

Android 一个结果活动与多个活动,android,Android,我有许多活动,其中有一个结果活动。如果有人知道如何将其分离,结果将显示多个活动中的一个结果。如果我运行它,它将显示结果结果问题和动物问题 Test.java: public class Test extends Activity { Button btnFruitQ,btnAnimalQ; ToggleButton tb; public static boolean tbflag; @Override protected void onCreate(Bu

我有许多活动,其中有一个结果活动。如果有人知道如何将其分离,结果将显示多个活动中的一个结果。如果我运行它,它将显示结果结果问题和动物问题

Test.java:

public class Test extends Activity {
    Button btnFruitQ,btnAnimalQ;
    ToggleButton tb;

    public static boolean tbflag;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        btnFruitQ = (Button) findViewById(R.id.btnFruitQ);
        btnAnimalQ = (Button) findViewById(R.id.btnAnimalQ);
        tb = (ToggleButton) findViewById(R.id.ToggleButton);
        btnFruitQ.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tbflag=tb.isChecked();
                startActivity(new Intent(Test.this, FruitQuestion.class));
            }
        });
        btnAnimalQ.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                tbflag=tb.isChecked();
                startActivity(new Intent(Test.this, AnimalQuestion.class));
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_test, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
FruitQuestion.java:

public class FruitQuestion extends Activity {

    TextView tv;
    Button btnNext;
    RadioGroup rg;
    RadioButton bt1,bt2,bt3;
    String Question[]={"HAHA","HAHA2","HAHA3"};
    String ans[]={"i1","12","i3"};
    String opt[]={"i1","lali","uu","12","hehe","oo","i3","jj","cc"};

    int flag=0;
    public static int mark,correct,wrong;

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

        tv=(TextView) findViewById(R.id.tvque);
        btnNext=(Button) findViewById(R.id.btnNext);
        rg = (RadioGroup) findViewById(R.id.rg);
        bt1 = (RadioButton) findViewById(R.id.btn1);
        bt2 = (RadioButton) findViewById(R.id.btn2);
        bt3 = (RadioButton) findViewById(R.id.btn3);

        tv.setText(Question[flag]);
        bt1.setText(opt[0]);
        bt2.setText(opt[1]);
        bt3.setText(opt[2]);

        Toast.makeText(this,"Negative Mark : "+Test.tbflag,1000).show();
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                RadioButton uans=(RadioButton)findViewById(rg.getCheckedRadioButtonId());
                String ansText= uans.getText().toString();

                if (ansText.equalsIgnoreCase(ans[flag]))
                {
                    correct++;
                }
                else
                {
                    wrong++;
                }
                flag++;
                if(flag<Question.length)
                {
                    tv.setText(Question[flag]);
                    bt1.setText(opt[flag*3]);
                    bt2.setText(opt[(flag*3)+1]);
                    bt3.setText(opt[(flag*3)+2]);
                }
                else
                {
                    if(Test.tbflag)
                    {
                        mark=correct-wrong;
                    }
                    else
                    {
                        mark=correct;
                    }
                    Intent in=new Intent(getApplicationContext(),ResultActivity.class);
                    startActivity(in);
                }
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_fruit_question, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

我想我理解你,你想把一些值从A活动传递到B活动

要在活动之间传递数据,可以使用发送的相同意图。 这里有一个例子:

Intent i = new Intent(this, ActivityA.class);
i.putExtra("key1", value1);
i.putExtra("key2", value2);
startActivity(i);
putExtra方法允许传递多种值,如布尔值、字符串、整数

然后,在另一个活动的onCreate方法中,您可以通过以下方式获得此值:

String save = getIntent().getExtras().getString("key1");

我希望它能帮助您:

首先,为您的Intent实例指定一个不同的名称。除了在家里。您可以在intent对象中添加额外内容并将其发送到ResultActivity

像这样

Intent intent = new Intent(getApplicationContext(),ResultActivity.class);
intent.putExtra("activityName", "FruitQuestion");
startActivity(intent);
结果性


检查activityName值并显示其结果。

您可以使用Intent Extras告诉ResultActivity哪个活动调用了它,并显示相应的结果

请注意,您还应该重新考虑代码,这样您就不会在活动中使用静态变量来存储数据,而是可以使用SharedReferences

不过,为了让您开始,以下是您短期内可以做的事情:

在这个问题上,你应该:

    Intent in=new Intent(getApplicationContext(),ResultActivity.class);
    in.putExtra("question", "fruit");
    startActivity(in);
    Intent in=new Intent(getApplicationContext(),ResultActivity.class);
    in.putExtra("question", "animal");
    startActivity(in);
在动物问题上,你应该:

    Intent in=new Intent(getApplicationContext(),ResultActivity.class);
    in.putExtra("question", "fruit");
    startActivity(in);
    Intent in=new Intent(getApplicationContext(),ResultActivity.class);
    in.putExtra("question", "animal");
    startActivity(in);
然后,在ResultActivity中,捕获额外的意图,并显示相应的结果:

    Bundle extras = this.getIntent().getExtras();
    if (extras != null){
        String question = extras.getString("question");
        if (question.equals("fruit")) {
            sb.append("Correct Answer : " + FruitQuestion.correct);
            sb.append("\nWrong Answer : " + FruitQuestion.wrong);
            sb.append("\nFinal Score : " + FruitQuestion.mark);
            tv.setText(sb);
            FruitQuestion.correct = 0;
            FruitQuestion.wrong = 0;
        }
        else if (question.equals("animal")) {
            sb.append("Correct Answer : " + AnimalQuestion.correct);
            sb.append("\nWrong Answer : " + AnimalQuestion.wrong);
            sb.append("\nFinal Score : " + AnimalQuestion.mark);
            tv.setText(sb);
            AnimalQuestion.correct = 0;
            AnimalQuestion.wrong = 0;
        }
    }

我的理解是,您希望在单个ResultActivity中显示不同活动的结果,对吗?请分享您正在进行问答的其他活动的代码。必须在每个意图中添加额外的代码,以告知ResultActivity是哪个活动启动的。@DanielNugent Umm您能给我举个例子吗使用结果性。抱歉,当put Intent in=new IntentgetApplicationContext,ResultActivity.class;问题是,水果;startActivityin;。它直接跳转到结果活动,而不做活动结果quiz@AdityaWicaksono您需要在“下一步”按钮的onClick事件中执行此操作,就像在问题中的代码中执行此操作一样。您可能已将代码置于onCreate中。你必须把它放在onClick里面
    Bundle extras = this.getIntent().getExtras();
    if (extras != null){
        String question = extras.getString("question");
        if (question.equals("fruit")) {
            sb.append("Correct Answer : " + FruitQuestion.correct);
            sb.append("\nWrong Answer : " + FruitQuestion.wrong);
            sb.append("\nFinal Score : " + FruitQuestion.mark);
            tv.setText(sb);
            FruitQuestion.correct = 0;
            FruitQuestion.wrong = 0;
        }
        else if (question.equals("animal")) {
            sb.append("Correct Answer : " + AnimalQuestion.correct);
            sb.append("\nWrong Answer : " + AnimalQuestion.wrong);
            sb.append("\nFinal Score : " + AnimalQuestion.mark);
            tv.setText(sb);
            AnimalQuestion.correct = 0;
            AnimalQuestion.wrong = 0;
        }
    }