android 工作室中的 Spinner

Spinner in android studio

我正在创建一个 gpa 计算器并使用微调器来填充成绩。我如何将 spinner2 中的值乘以 textview1 中的学分值,以便它在 textview2 中显示结果,即 gradevalue。(应该类似于:gradevalue=credits*gradepoints) `public class MainActivity 扩展 AppCompatActivity 实现 AdapterView.OnItemSelectedListener{

String[] grades ={"A","B+","B","C+","C", "D+", "D", "E"};

String[] credits ={"1","2","3","4"};
double [] points1 = {4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0 };


Spinner spinner;
TextView TextView1;
TextView TextView2;

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

    TextView1 = (TextView) findViewById(R.id.gradePoints);
    TextView2 = (TextView) findViewById(R.id.gradeValue);

    spinner = (Spinner) findViewById(R.id.spinner);

    ArrayAdapter<String> adapter1 =
            new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, grades);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter1);
    spinner.setOnItemSelectedListener(onItemSelectedListener1);

    Spinner spin2 = (Spinner) findViewById(R.id.spinner2);
    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, credits);
    adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spin2.setAdapter(adapter2);
    spin2.setOnItemSelectedListener(this);
}

AdapterView.OnItemSelectedListener onItemSelectedListener1 = new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String s1 = String.valueOf(points1[position]);
        TextView1.setText(s1);
    }

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

    }
};

public void onItemSelected(AdapterView<?> parent, View v, int position, long id ){
    Spinner spin = (Spinner)parent;
    Spinner spin2 = (Spinner)parent;

    if(spin.getId() == R.id.spinner)
    {
        Toast.makeText(this, "Your choice :" + grades[position],Toast.LENGTH_SHORT).show();
    }
    if(spin2.getId() == R.id.spinner2)
    {
        Toast.makeText(this, "Your choice :" + credits[position],Toast.LENGTH_SHORT).show();
    }

}

public void onNothingSelected(AdapterView<?> parent){
    Toast.makeText(this, "Choose grades :", Toast.LENGTH_SHORT).show();
}

} 在此处输入代码`

您需要在微调器上设置文本,您可以通过以下方法获取它: 获取 SelectedValue() 并在其上添加 +1,因为它从 0 开始。

您只需要根据所选项目的索引在微调器上设置 Onitemselected 侦听器您可以更改文本视图的 value.Hope 它会帮助您

Hey KunjiDaniel this is working at my end.Please check this  Spinner spinner;
    ArrayAdapter<String> adapter;
    String[] spinnerData = {"1", "3", "4", "5", "6"};
    TextView text2, resultText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sample_spinner);
        spinner = (Spinner) findViewById(R.id.spinner);
        text2 = (TextView) findViewById(R.id.numbr2);

        text2.setText(String.valueOf(3));
        resultText = (TextView) findViewById(R.id.result);
        adapter = new ArrayAdapter<String>(SampleSpinner.this, android.R.layout.simple_dropdown_item_1line, spinnerData);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long l) {
                String selected_value = adapterView.getItemAtPosition(position).toString();
                changeResultantValues(selected_value);
            }

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

            }
        });


    }

    int value = 0;

    public void changeResultantValues(String spinnerSelected) {
        if (!spinnerSelected.equals("")) {
            value = Integer.parseInt(spinnerSelected);
        }
        String textview2Value = text2.getText().toString();
        int value2 = Integer.parseInt(textview2Value);
        String resultant = String.valueOf(value * value2);
        resultText.setText(resultant);

    }