如何将从微调器中选择的值乘以文本视图以在另一个文本视图中显示结果

how to multiply value selected from a spinner to a textview to display result in another text view

我想将学分乘以 gradePoints 得到 textview2 中的 return gradevalue。我怎么做?学分是第二个微调器。 `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();
}

} `

也许你可以试试这个:

public class MainActivity extends AppCompatActivity implements 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, spin2;
    TextView TextView1;
    TextView TextView2;
    Double point = -1.0;
    Double value = -1.0;

    @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);

        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) {
            point = points1[position];
            TextView1.setText(String.valueOf(point));

            if ( value != -1.0 ) {
                double res = (double) point * value;
                TextView2.setText(String.valueOf(res));
            }
        }

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

        }
    };


    public void onItemSelected(AdapterView<?> parent, View v, int position, long id ){

        Toast.makeText(this, "Your choice :" + credits[position],Toast.LENGTH_SHORT).show();

        String valueStr = credits[position];
        value = Double.parseDouble(valueStr);

        if ( point != -1.0 ) {
            double res = (double) point * value;
            TextView2.setText(String.valueOf(res));
        }
    }

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

}

希望这会奏效!

您可以尝试使您选择的值成为成员变量,然后在每次选择时更改文本视图的值:

public class MainActivity extends AppCompatActivity{

    int selectedCredit = 0;
    double selectedPoints = 0;

    @Override
    public void onCreate(Bundle savedInstanceState){
        int[] credits ={1,2,3,4}; 
        double[] points = {4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0 };

        spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
                selectedCredit = credits[position];
                double value = selectedCredit * selectedPoints;
                textView.setText("The calculated value is " + value);
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent){}
        });

        spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id){
                selectedPoints = points[position];
                double value = selectedCredit * selectedPoints;
                textView.setText("The calculated value is " + value);
            }
            @Override
            public void onNothingSelected(AdapterView<?> parent){}
        });
    }
}

我已经根据你的问题的理解给出了解决方案。希望这可以帮助。 :)

public class MainActivity extends AppCompatActivity implements 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);
    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);
    spin2.setAdapter(adapter2);
    spin2.setOnItemSelectedListener(this);
}

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

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

    }
};

    spin2.OnItemSelectedListener onItemSelectedListener1 = new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        String s1 = spinner.getSelectedItem().toString();
        Double gradePoint = 0.0;
        if(s1.equals("A")){
           gradePoint = 4.0;
        }
         else if(s1.equals("B+")){
           gradePoint = 3.5;
        }
         else if(s1.equals("B")){
           gradePoint = 3.0;
        }
         else if(s1.equals("C+")){
           gradePoint = 2.5;
        }
         else if(s1.equals("c")){
           gradePoint = 2.0;
        }
         else if(s1.equals("D+")){
           gradePoint = 1.5;
        }
         else if(s1.equals("D")){
           gradePoint = 1.0;
        }
         else if(s1.equals("E")){
           gradePoint = 0;
        }
        int courseCredit = Integer.parseInt(spin2.getSelectedItem().toString());
         double result = gradePoint*courseCredit;
         TextView2.setText(String.valueOf(result));
    }

    @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();
    }
}