【问题标题】:Spinner List Item微调器列表项
【发布时间】:2018-10-06 15:36:19
【问题描述】:

我目前正在开发定价计算器,客户只需要从微调器列表中选择他们想要的东西,然后计算器就会计算出总价。

我无法创建微调器下拉列表,但微调器中的每个项目都有不同的值,例如,如果微调器有“LORRY”、“BUS”和“CAR”,而“LORRY”的价格是 20,“ CAR" 是 30 美元,而 "BUS" 是 10 美元。

如何将不同的值添加到每个微调器项目中。我使用字符串数组来创建下拉列表项。我是在 Android Studio 平台上创建的。

MainActivity.java

package com.jika.directcalc;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends AppCompatActivity {

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

        Spinner mySpinner = (Spinner) findViewById(R.id.spinnervalue);
        ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(MainActivity.this,
        android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.value));
        myAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        mySpinner.setAdapter(myAdapter);

    }
}

String.xml

<resources>
    <string name="app_name">DIRECTCalc</string>
    <string name="tmlogo">tmlogo</string>

    <string-array name="value">
        <item>IPV4 (16 IP)</item>
        <item>IPV6</item>
        <item>BGP</item>
        <item>Bandwith on demand</item>
    </string-array>

【问题讨论】:

    标签: java android string android-studio oop


    【解决方案1】:

    首先从微调器中获取值

    int value = 0; String Text = String.valueOf(mySpinner.getSelectedItem());

    然后分配值,例如

    if(Text == "BUS"){ value = 20; }

    【讨论】:

    • 使用 equals() 方法与字符串进行比较。
    【解决方案2】:

    当您需要计算总数时,使用 getSelectedItem()

    getSelectedItemPosition()

    String text = mSpinner.getSelectedItem().toString();
    switch(text)
    {
        case "LORRY" : value=20;break;
        case "CAR"   : value=30;break;
        case "BUS" : value=10;break;
    }
    

    你也可以使用位置。

    switch(mSpinner.getSelectedItemPosition())
    {
      //cases
    }
    

    如果想在Item被选中后立即获取,Use listener

    mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            switch(position)
            {
            case 0 : value=20;break;
            case 1 : value=30;break;
            case 2 : value=10;break;
            }
        }
    
        @Override
        public void onNothingSelected(AdapterView<?> parentView) {
            // your code here
        }
    
    });
    

    【讨论】:

      【解决方案3】:

      您需要有一个希望微调器显示的数据列表

          List<String> spinnerArray =  new ArrayList<String>();
          spinnerArray.add("item1");
          spinnerArray.add("item2");
      
          ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerArray);
      
          adapter.setDropDownViewResource(
          android.R.layout.simple_spinner_dropdown_item);
      
          Spinner sItems = (Spinner) findViewById(R.id.spinner1);
          sItems.setAdapter(adapter);
      

      还要找出选择了什么,你可以做这样的事情

          String selected = sItems.getSelectedItem().toString();
          if (selected.equals("what ever the option was")) {
      
          }
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多