Элемент списка Spinner - PullRequest
0 голосов
/ 26 апреля 2018

В настоящее время я работаю над калькулятором цен, в котором клиенту нужно только выбрать то, что он хочет, из списка счетчиков, после чего калькулятор рассчитает общую цену.

У меня нет никаких проблем при создании выпадающего списка счетчика, но каждый элемент в счетчике имеет различное значение, например, если у счетчика есть "LORRY", "BUS" и "CAR", а для "LORRY" цена20, «АВТОМОБИЛЬ» - это 30, а «АВТОБУС» - 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>

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Когда вам нужно при расчете суммы, используйте 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
}

Если вы хотите получить сразу, когда выбран пункт, 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
    }

});
0 голосов
/ 26 апреля 2018

У вас должен быть список данных, которые вы хотите, чтобы счетчик отображал

    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")) {

    }
0 голосов
/ 26 апреля 2018

сначала получите значение из счетчика

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

, затем присвойте значение, например,

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

...