Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算用户单击的单选按钮中的数字总和,然后在其他布局中显示该总和?_Java_Android_Radio Button - Fatal编程技术网

Java 如何计算用户单击的单选按钮中的数字总和,然后在其他布局中显示该总和?

Java 如何计算用户单击的单选按钮中的数字总和,然后在其他布局中显示该总和?,java,android,radio-button,Java,Android,Radio Button,我想做一个测验应用程序,可以计算出用户点击单选按钮的数字总和。如何计算总和,以及在用户单击按钮生成结果后,如何在另一个布局中显示结果 以下是问题布局的代码(activity_main.xml): }首先,我强烈建议将所有单选按钮的点击方法归纳为一种方法,例如on RadioAction: 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.andr

我想做一个测验应用程序,可以计算出用户点击单选按钮的数字总和。如何计算总和,以及在用户单击按钮生成结果后,如何在另一个布局中显示结果

以下是问题布局的代码(activity_main.xml):


}

首先,我强烈建议将所有
单选按钮的点击方法归纳为一种方法,例如
on RadioAction

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/instruction_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/instruction" />

    // Question 1

    <TextView
        android:id="@+id/question1_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/question1" />

    <RadioGroup
        android:id="@+id/question1_radiogroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <RadioButton
                android:id="@+id/question1_radioButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="radioButtonAction"
                android:text="1" />

            <RadioButton
                android:id="@+id/question1_radioButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="2" />

            <RadioButton
                android:id="@+id/question1_radioButton3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="radioButtonAction"
                android:text="3" />

            <RadioButton
                android:id="@+id/question1_radioButton4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="radioButtonAction"
                android:text="4" />

            <RadioButton
                android:id="@+id/question1_radioButton5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="radioButtonAction"
                android:text="5" />

            <RadioButton
                android:id="@+id/question1_radioButton6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:onClick="radioButtonAction"
                android:text="6" />

        <RadioButton
            android:id="@+id/question1_radioButton7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="7" />

    </LinearLayout>
</RadioGroup>

// Question 2

<TextView
    android:id="@+id/question2_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/question2" />

<RadioGroup
    android:id="@+id/question2_radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/question2_radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="1" />

        <RadioButton
            android:id="@+id/question2_radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="2" />

        <RadioButton
            android:id="@+id/question2_radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="3" />

        <RadioButton
            android:id="@+id/question2_radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="4" />

        <RadioButton
            android:id="@+id/question2_radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="5" />

        <RadioButton
            android:id="@+id/question2_radioButton6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="6" />

        <RadioButton
            android:id="@+id/question2_radioButton7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="7" />

    </LinearLayout>
</RadioGroup>

// Question 3

<TextView
    android:id="@+id/question3_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/question3" />

<RadioGroup
    android:id="@+id/question3_radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/question3_radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="1" />

        <RadioButton
            android:id="@+id/question3_radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="2" />

        <RadioButton
            android:id="@+id/question3_radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="3" />

        <RadioButton
            android:id="@+id/question3_radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="4" />

        <RadioButton
            android:id="@+id/question3_radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="5" />

        <RadioButton
            android:id="@+id/question3_radioButton6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="6" />

        <RadioButton
            android:id="@+id/question3_radioButton7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="7" />

    </LinearLayout>
</RadioGroup>

// Question 4

<TextView
    android:id="@+id/question4_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/question4" />

<RadioGroup
    android:id="@+id/question4_radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/question4_radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="1" />

        <RadioButton
            android:id="@+id/question4_radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="2" />

        <RadioButton
            android:id="@+id/question4_radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="3" />

        <RadioButton
            android:id="@+id/question4_radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="4" />

        <RadioButton
            android:id="@+id/question4_radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="5" />

        <RadioButton
            android:id="@+id/question4_radioButton6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="6" />

        <RadioButton
            android:id="@+id/question4_radioButton7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="7" />

    </LinearLayout>
</RadioGroup>

// Question 5

<TextView
    android:id="@+id/question5_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/question5" />

<RadioGroup
    android:id="@+id/question5_radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <RadioButton
            android:id="@+id/question5_radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="1" />

        <RadioButton
            android:id="@+id/question5_radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="2" />

        <RadioButton
            android:id="@+id/question5_radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="3" />

        <RadioButton
            android:id="@+id/question5_radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="4" />

        <RadioButton
            android:id="@+id/question5_radioButton5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="5" />

        <RadioButton
            android:id="@+id/question5_radioButton6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="6" />

        <RadioButton
            android:id="@+id/question5_radioButton7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="radioButtonAction"
            android:text="7" />

    </LinearLayout>
</RadioGroup>

<Button
    android:id="@+id/jana_keputusan_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Jana Keputusan" />

</LinearLayout>
package com.android.resilien.resilienminver;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;

public class MainActivity extends AppCompatActivity {

public int score = 0;

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

    final Button generate_result_button = findViewById(R.id.jana_keputusan_button);
    generate_result_button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent generate_result_intent = new Intent(MainActivity.this, ResultActivity.class);
            startActivity(generate_result_intent);
        }
    });
}



public void radioButtonAction(View view) {
    // Is the button checked?
    boolean checked = ((RadioButton) view).isChecked();

    // Check which radio button was clicked
    switch(view.getId()) {
        case R.id.question5_radioButton1:
            if(checked) {score = score + 1;}
            break;
        case R.id.question5_radioButton2:
            if(checked) {score = score + 2;}
            break;
        case R.id.question5_radioButton3:
            if(checked) {score = score + 3;}
            break;
        case R.id.question5_radioButton4:
            if(checked) {score = score + 4;}
            break;
        case R.id.question5_radioButton5:
            if(checked) {score = score + 5;}
            break;
        case R.id.question5_radioButton6:
            if(checked) {score = score + 6;}
            break;
        case R.id.question5_radioButton7:
            if(checked) {score = score + 7;}
            break;
    }
}
为了扩展应用程序,我还建议您在源代码中动态生成问题布局,而不是硬编码的布局xml

最后显示结果,例如,在底部添加一个
按钮
,并设置以下代码以显示一个包含已获得分数的对话框。作为替代方案,您还可以启动一个新的
活动
,并通过
Intent
Bundle
在那里显示它

    private onClieckedButtonResult(View v) {        
    AlertDialog alertDialog = new AlertDialog.Builder(this)
        //set icon 
         .setIcon(android.R.drawable.ic_dialog_alert)
        //set title
        .setTitle("Your score")
        //set message
        .setMessage("You achieved a score of " + String.valueOf(score) + "!")
        //set positive button
        .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
           //Call finish to close your app   
                finish();
            }
        })
        .show();
}
备选方案:
在另一个
活动中显示分数

为另一个
活动创建
意图
,并将分数值保存在意图中:

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

    final Button generate_result_button = findViewById(R.id.jana_keputusan_button);
    generate_result_button.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v) {
         Intent generate_result_intent = new Intent(MainActivity.this, ResultActivity.class);
         Bundle extras = generate_result_intent.getExtras();
         extras.putExtra("SCORE", score);  
         startActivity(generate_result_intent);
       }
    });
}

在您的其他
活动中
可以读取分数的传递值并将其显示给用户:

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

    Intent mIntent = getIntent();
    if (i.hasExtra("SCORE")) {
       int score = mIntent.getIntExtra("SCORE", 0);
       // Do something to display the score
    }
}

最后,请注意,用户可以通过多次单击
单选按钮来增加自己的分数。这应该在您的应用程序逻辑中解决,因为评分将无效。

要从
RadioButton
获取文本,我建议您使用:

int indexOfButton = radioGroup.indexOfChild(findViewById(radioGroup.getCheckedRadioButtonId()));
String scoreS = (indexOfButton > -1)? ((RadioButton) radioGroup.getChildAt(indexOfButton)).getText().toString() : "";
score += Integer.parseInt(scoreS);
此方法正在检查
RadioButton
id,并通过它查找该组中的索引。通过索引,您可以获得
单选按钮
文本

要在其他活动中显示分数,您可以发送数据抛出
Intent
extras。像这样:

Intent intent = new Intent(MainActivity.this, ResultActivity.class);
intent.putExtra("result", score);
startActivity(intent);
ResultActivity.class
上,您可以通过以下方式获得额外分数:

Integer result = 0;
Intent i = getIntent();
if (i.hasExtra("result")) {
    result = i.getIntExtra("result");
}
然后,您可以在
TextView
或其他可能的方式中显示它

如果你不懂什么,请尽管问。

我希望它能帮助您……

您可以转到另一个活动并按意图显示结果。您可以使用putExtra将分数传递给其他活动

主要活动:

okAction.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {   
        Intent intent = new Intent(MainActivity.this, AnotherActivity.class);   
        intent.putExtra("Score", score);
        startActivity(intent);
    }
});
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle != null){
   int score = bundle.getInt("Score");
   restltText.setText("Your score is: "+ score);
}
另一项活动:

Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle != null){
   int score = bundle.getInt("Score");
   restltText.setText("Your score is: "+ score);
}

您的意思是,在用户按下单选按钮后,如何将结果发送到另一个版面?用于在“下一步<代码>活动版面”中显示结果。您可以使用
Intent
查看如何将结果显示为文本视图?最终文本视图结果\u文本视图=(文本视图)findViewById(R.id.score\u文本);智力得分=0;意图结果_Intent=getIntent();Bundle Bundle=result_intent.getExtras();如果(result\u intent.hasExtra(“result”){score=result\u intent.getIntExtra(“score”,0);result\u TextView.setText(“Skor:+score”)}看起来一切都很好。除非不要将
TextView
定义为
final
。它表示对象是最终的,您以后将无法更改其值。它调用Blank final,因为您将其创建为空。如果不使用它,我认为您不需要创建
Bundle
对象;完全没问题<代码>最终版
在这里用作不可变的引用。这意味着,对
TextView
score\u文本的引用是不可变的,但是
TextView
本身可以修改。在这里不使用
final
,这是一种相当糟糕的做法,因为以后不应更改此引用。这带来了诸如零安全、减少副作用等优点。
putExtra
是一种
Intent
方法,记录在所附链接中。你可以用
putExtra
发布你的代码吗。
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if(bundle != null){
   int score = bundle.getInt("Score");
   restltText.setText("Your score is: "+ score);
}