繁体   English   中英

选择微调项以更改textview中的文本?

[英]Selecting a Spinner Item to change the text within a textview?

我需要这个Android转换应用程序的帮助。 因此,我有一个装有以下物品的微调器:

 <string name="action_settings">Settings</string><string-array name="ConversionItems">
         <item >Miles to Kilometers</item>
         <item >Kilometers to Miles</item>
         <item >Inches to Centimeters</item>
         <item >Centimeters to Inches</item>
 </string-array>

这是我MainActivity中的一些代码

> conversionspinner.setOnItemSelectedListener(new
> OnItemSelectedListener() {
>       @Override
>       public void onItemSelected(AdapterView<?> parent, View view, int position,
>               long id) {
>           // TODO Auto-generated method stub
>           
>       }
> 
>       @Override
>       public void onNothingSelected(AdapterView<?> parent) {
>           // TODO Auto-generated method stub
>           return;
>       }
>     }

我想知道的是,当选择特定项目时,如何更改文本视图的文本。 例如,如果选择了“英里为公里”,则textview1将显示“ Miles”,而textview2将显示“公里”。 我是android编程和一般编程的新手,所以简单的解决方案会很棒!

谢谢

很简单:

    final String CONDITION_1 = "Kilometers";
    final String CONDITION_2 = "Miles";

    TextView textView1 = (TextView) findViewById(R.id.textView1);
    int units = 10;

    private void updateText() {
         String spinnerState = conversionspinner.getSelectedItem().toString();


         if (spinnerState.equalsIgnoreCase("")) {
             textView1.setText("");

         } else if (spinnerState.equalsIgnoreCase(CONDITION_1)){
             //do appropriate unit conversion:
             units = units * (8/5);
             textView1.setText(String.valueOf(units) + spinnerState);

         } else if (spinnerState.equalsIgnoreCase(CONDITION_2)) { 
             units = units * (5/8);
             textView1.setText(String.valueOf(units) + spinnerState);
         }
    }

conversionspinner.setOnItemSelectedListener(new OnItemSelectedListener() {
    @Override
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
          updateText();

   });

你可以做这样的事情

conversionspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
           //position will tell you which position is selected
           // in your array  index 0 - <item >Miles to Kilometers</item>
           //                index 1 - <item >Kilometers to Miles</item>
           //                index 2 - <item >Inches to Centimeters</item>
           //                index 3 - <item >Centimeters to Inches</item>

            switch(position){
                case 0:
                    textView1.settext("Miles");
                    textView2.settext("Kilometers");
                    break;
                case 1:
                    textView1.settext("Kilometer");
                    textView2.settext("Miles");
                    break;
                case 2:
                    textView1.settext("Inches");
                    textView2.settext("Centimeter");
                    break;
                case 3:
                    textView1.settext("Centimeter");
                    textView2.settext("Inches");
                    break;
            }


        }

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

        }

        });

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM