簡體   English   中英

Android從另一個微調器填充微調器內容

[英]Android Populate Spinner Content From Another Spinner

我試圖通過從微調器中選擇一個國家來填充城市。 它應該根據第一個旋轉器的選擇來填充第二個旋轉器的內容。 我的strings.xml和MainActivity.java文件是這樣的:

strings.xml中

 <!-- Countries -->
<string-array name="country_names">
    <item>Turkey</item>
    <item>Spain</item>
</string-array>

<!-- Cities -->
<string-array name="Turkey">
    <item>Istanbul</item>
    <item>Adana</item>
</string-array>

<string-array name="Spain">
    <item>Madrid</item>
    <item>Barcelona</item>
</string-array>

MainActivity.java

    citySpinner = (Spinner) findViewById(R.id.input_city);
    countrySpinner = (Spinner) findViewById(R.id.input_country);

    countryAdapter = ArrayAdapter.createFromResource(this,R.array.country_names,android.R.layout.simple_spinner_item);
    countryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    final String[] country = new String[1];
    countrySpinner.setAdapter(countryAdapter);
    countrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l)
        {
            country[0] = adapterView.getItemAtPosition(i).toString();
            Toast.makeText(mContext, adapterView.getItemAtPosition(i) + " selected", Toast.LENGTH_SHORT).show();
        }

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

        }
    });

    cityAdapter = ArrayAdapter.createFromResource(this,R.array.Turkey,android.R.layout.simple_spinner_item);
    cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    citySpinner.setAdapter(cityAdapter);

我需要在cityAdapter = ArrayAdapter.createFromResource(...)行內提供一個變量,而不要輸入土耳其或任何國家/地區名稱。

我無法提出任何有用的網絡信息,這是我最后的希望:)

在第一個旋轉器的setonitemselected內部,聲明第二個旋轉器並調用clicklistener函數,即second_spinner.setonitemselectedlistener,然后將在第一個旋轉器的setonitemselected方法內部實現這兩個回調方法。

嘗試這個 :

countrySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                country[0] = adapterView.getItemAtPosition(i).toString();
                Toast.makeText(mContext, adapterView.getItemAtPosition(i) + " selected", Toast.LENGTH_SHORT).show();
                switch (i) {
                    case 0:
                        cityAdapter = ArrayAdapter.createFromResource(this, R.array.Turkey, android.R.layout.simple_spinner_item);
                        break;
                    case 1:
                        cityAdapter = ArrayAdapter.createFromResource(this, R.array.Madrid, android.R.layout.simple_spinner_item);
                        break;
                }
                cityAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                citySpinner.setAdapter(cityAdapter);
            }

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

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM