заполнить счетчик из массива строк

Я новичок в этом, и у меня есть вопрос, который, вероятно, довольно прост.

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

Прямо сейчас я настроил отображение всплывающего уведомления с выбранными данными, но я хочу настроить активность для открытия, но это позже. Сейчас мне нужно знать, как заполнить счетчик из массива из strings.xml.

.Джава

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

/**
 * @author madonk
 *
 */
public class Region extends Activity {

Spinner sp1,sp2,sp3;
ArrayAdapter<String> reg_adp,sw_city_adp,sw_lake_charles_adp;
List<String> regions,sw_cities,sw_lake_charles;
int pos;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_region);

    regions=new ArrayList<String>();

    regions.add("Select a Region");
    regions.add("Southwest");

    sp1= (Spinner) findViewById(R.id.regions_spinner);
    sp2= (Spinner) findViewById(R.id.sw_city_spinner);
    sp3= (Spinner) findViewById(R.id.sw_lake_charles_spinner);

    reg_adp=new ArrayAdapter<String> (this,android.R.layout.simple_dropdown_item_1line,regions);
    reg_adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    sp1.setAdapter(reg_adp);

    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            pos=arg2;
            add();

        }

        private void add() {
            // TODO Auto-generated method stub
            Toast.makeText(getBaseContext(), ""+pos, Toast.LENGTH_SHORT).show();

            switch(pos)
            {
            case 0:
                sw_cities= new ArrayList<String>();                    
                sw_cities.add("Select a City");


                sw_city_adp=new ArrayAdapter<String>(Region.this,
                        android.R.layout.simple_dropdown_item_1line,sw_cities);
                sw_city_adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(sw_city_adp);

                select();

                break;
            case 1:
                sw_cities= new ArrayList<String>(); 
                sw_cities.add("Select a City");
                sw_cities.add("Lake Charles");
                sw_cities.add("Iowa");
                sw_cities.add("Lake Arthur");

                sw_city_adp=new ArrayAdapter<String>(Region.this,
                        android.R.layout.simple_dropdown_item_1line,sw_cities);
                sw_city_adp.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                sp2.setAdapter(sw_city_adp);

                select();

                break;
            }

        }

        private void select() {
            // TODO Auto-generated method stub

            sp2.setOnItemSelectedListener(new OnItemSelectedListener() {

                public void onItemSelectedregions(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub

                }

                public void onNothingSelected(AdapterView<?> arg0) {
                    // TODO Auto-generated method stub

                }

                public void onItemSelected(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {
                    // TODO Auto-generated method stub

                }

                public void onNothingSelectedregions(AdapterView<?> arg0) {
                    // TODO Auto-generated method stub

                }
            });

        }

        public void onNothingSelectedcities(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
    }

укусы.xml

<resources>

    <string name="app_name">Louisiana Festivals</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_region">Select a Region</string>
    <string-array name="regions_array">
        <item >Southwest</item>
    </string-array>
        <string name="select_a_region">Select a Region</string>
    <string-array name="southwest_cities">
        <item >Lake Charles</item>
        <item >Iowa</item>
    </string-array>
    <string name="sw_select_a_city">Select a City</string>
    <string-array name="lake_charles">
        <item>Contraband days Pirate Festival</item>
        <item>Other festival to be determined</item>
    </string-array>

</resources>

person Madonk    schedule 03.08.2012    source источник


Ответы (1)


Вы можете получить массив строк из strings.xml, используя получитьмассив строк(). Итак, фрагмент кода, который вам нужен:

String[] regionsArray = getResources().getStringArray(R.array.regions_array);
regions = new ArrayList<String>(Arrays.asList(regionsArray));

Теперь все, что вы вводите в regions_array, попадет в регионы ArrayList.

person Jeff    schedule 04.08.2012
comment
есть идеи, как сделать так, чтобы второй счетчик был недоступен, пока не будет сделан выбор на первом и так далее? Или это должен быть другой вопрос? - person Madonk; 04.08.2012
comment
и это getResources. локальная переменная? - person Madonk; 04.08.2012
comment
Я бы сделал ваш первый комментарий другим вопросом. Что касается getResources(), это вызов функции, а не переменной. Извините моя ошибка. Так что это должно быть getResources(). - person Jeff; 04.08.2012
comment
спасибо, немного погуглив нашел. затем моя жена заставила меня пойти посмотреть American Reunion..... Я приму ваш ответ! - person Madonk; 04.08.2012
comment
Я рад, что ты смог это понять - person Jeff; 05.08.2012