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

时间:2017-02-06 10:01:54

标签: android android-spinner

我希望将信用乘以gradePoints以返回textview2中的等级值。我怎么做?学分是第二个旋转器。 `public class MainActivity扩展AppCompatActivity实现AdapterView.OnItemSelectedListener {

{{1}}

} `

3 个答案:

答案 0 :(得分:0)

也许你可以试试这个:

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

}

希望这会奏效!

答案 1 :(得分:0)

您可以尝试制作所选值的成员变量,然后在每次选择时更改textview的值:

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){}
        });
    }
}

答案 2 :(得分:0)

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

$app_access_token