我对android编程还很陌生,所以如果这个问题很愚蠢,我很抱歉。我试着搜索和观看了多个youtube教程,但找不到任何答案。
所以我现在有多个片段,每个片段有5个放射性基团。我已经到了可以让应用程序计算并显示所选单选按钮的"分数"的地步。但我想包括一个按钮,它可以接收所有这些单选按钮,并一次计算所有碎片的分数。捆绑会是一种方式吗?如果是这样的话,我该如何制作一个同时提交所有内容的按钮?
我附上了我的片段的代码:
package se.example.bevarade;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.TextView;
public class DukadeBordFragment extends Fragment {
int dukadeScore;
View view;
public DukadeBordFragment(){
// Empty public constructor
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.dukade_bord, container, false);
Button subbeBtn = (Button) view.findViewById(R.id.btn_submit);
subbeBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick (View v){
dukadeScore = checkAnswers();
displayFinalScore(dukadeScore);
}
});
return view;
}
public int checkAnswers() {
/* Question One - The correct answer is RadioButton q14*/
RadioButton dukq1a = view.findViewById(R.id.duk_q1rb_alt1);
boolean dukQue1 = dukq1a.isChecked();
if (dukQue1) {
dukadeScore += 1;
}
/* Question Two - The correct answer is RadioButton q14*/
RadioButton dukq2a = view.findViewById(R.id.duk_q2rb_alt1);
boolean dukQue2 = dukq2a.isChecked();
if (dukQue2) {
dukadeScore += 1;
}
/* Question Three - The correct answer is RadioButton q14*/
RadioButton dukq3a = view.findViewById(R.id.duk_q3rb_alt1);
boolean dukQue3 = dukq3a.isChecked();
if (dukQue3) {
dukadeScore += 1;
}
/* Question Four - The correct answer is RadioButton q14*/
RadioButton dukq4a = view.findViewById(R.id.duk_q4rb_alt1);
boolean dukQue4 = dukq4a.isChecked();
if (dukQue4) {
dukadeScore += 1;
}
/* Question Five - The correct answer is RadioButton q14*/
RadioButton dukq5a = view.findViewById(R.id.duk_q5rb_alt1);
boolean dukQue5 = dukq5a.isChecked();
if (dukQue5) {
dukadeScore += 1;
}
return dukadeScore;
}
private void displayFinalScore(int score){
TextView scoreView = view.findViewById(R.id.score_text);
scoreView.setText(getString(R.string.you_scored) + score + getString(R.string.out_of_total));
dukadeScore = 0;
}
}
逐段通过束传递数据,并在IMO.结束时进行计算
有多种解决方案,
- 在束中从一个片段传递到另一个片段
- 创建应用程序级公共数组或将保存数据的东西直到流程完成
- 创建活动变量-static,它将存储所有片段数据
但计算完成后,您需要对其进行去初始化。