0

GPA計算機を作ろうとしています。2 つの列にたくさんのスピナーがあります。それぞれ7個。ドロップダウンリストに表示される文字列の配列を入れました。ここで、ユーザーがドロップダウンリストから「4」を選択した場合、入力を後で4と見なして、たとえばユーザーがグレードAを選択した場合に乗算するようにJavaでコードを書きたいと思います。 4.どうすればいいですか?アレイ アダプタを作成しましたが、機能しません。私は答えとして「ナン」を得ています。調べたところ、番号が未定義の場合はNanが表示されると書いてありました。どんな助けでも大歓迎です。ありがとうございました!

ボタンに使用したような onClickListener を使用する必要がありますか? ユーザーがグレード A を選択した場合、コンピューターはグレードポイントを 4 に等しくする必要があることをどのように認識しますか?

これは私がやったことです(明らかに間違っています):

if(spinner1.getSelectedItem().equals("A+")) gradepoint1=4.00;
        if(spinner1.getSelectedItem().equals("A")) gradepoint1=4.00;
        if(spinner1.getSelectedItem().equals("A-")) gradepoint1=3.67;
        if(spinner1.getSelectedItem().equals("B+")) gradepoint1=3.33;
        if(spinner1.getSelectedItem().equals("B")) gradepoint1=3.00;
        if(spinner1.getSelectedItem().equals("B-")) gradepoint1=2.67;
        if(spinner1.getSelectedItem().equals("C+")) gradepoint1=2.33;
        if(spinner1.getSelectedItem().equals("C")) gradepoint1=2.00;
        if(spinner1.getSelectedItem().equals("C-")) gradepoint1=1.67;
        if(spinner1.getSelectedItem().equals("D+")) gradepoint1=1.33;
        if(spinner1.getSelectedItem().equals("D")) gradepoint1=1.00;
        if(spinner1.getSelectedItem().equals("D-")) gradepoint1=0.67;
        if(spinner1.getSelectedItem().equals("F")) gradepoint1=0.00;
        if(spinner1.getSelectedItem().equals("ABS")) gradepoint1=0.00;
4

2 に答える 2

0

次のようなことをお勧めします。

oncreate の前に:

float[] gradeValues = { 4f, 3.67f, 3.33f, 3.00f, 2.67f, 2.33f, 2.00f,1.33f,1.00f,0.67f,0.00f,0.00f};

String [] gradeAlpabetic = {"A+","A","A-","B+","B","B-","C+","C","C-","D+","D","D-","F","ABS"};

ここで、最初の値 4f の位置は 0 で、次の値は 1 などです。

値「A+」はスピナーの位置 0 になるため、このようにして、どのグレードがどのグレード値に対応するかがわかります。

onViewCreated または OnCreate で:

ArrayAdapter<String> gradesArrayAdap = new ArrayAdapter<String>(
            getActivity(), R.layout.spinnerlayout, gradeAlphabetic);

    gradesSpinner.setAdapter(GradesArrayAdapter);


  gradeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

            getGrades();

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

次に、これを onViewCreated/onCreate の外に置きます。

public void getGrades(){


       String grade = gradeSpinner.getSelectedItemPosition();
       float theGrade = Float.parseFloat(gradeValue(grade);

      System.out.println("Your grade in float is: " + theGrade);

}

それが役に立てば幸い。

于 2013-07-17T01:36:05.630 に答える