[英]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.