根据另一个微调器中的选择动态填充微调器

时间:2012-07-11 14:14:46

标签: android mono spinner fill

我使用xml资源文件中的文本数组填充两个微调器。根据一个微调器中的选择,我想用xml资源文件中的两个不同数组中的一个填充另一个。即时通讯在用于Android的单声道中遇到麻烦,无法在线查找任何示例。请帮忙

2 个答案:

答案 0 :(得分:1)

试试这个......

public void onItemSelected(AdapterView<?> parent, View view, 
                int pos, long id) {
    if(pos==0){
       Spinner spinner = (Spinner) findViewById(R.id.spinner);
       ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.arrayone, android.R.layout.simple_spinner_item);
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       spinner.setAdapter(adapter);
    }
    else{
       Spinner spinner = (Spinner) findViewById(R.id.spinner);
       ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.arraytwo, android.R.layout.simple_spinner_item);
       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
       spinner.setAdapter(adapter);

       }

    }

答案 1 :(得分:0)

你的建议是一个很大的帮助。通过一些更改,以下是我在单声道中为android工作的原因:

我有一个微调名称spin3。您可以选择opt1或opt2。名为opt1的资源中有一个字符串数组,另一个名为opt2。然后第二个微调器(spinner4)根据spin3中选择的内容将其内容更改为opt1或opt2。

public void spin3_onItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
{
Spinner spin = (Spinner)sender;
string pos = spin.SelectedItem.ToString();
if(pos=="opt1")
{
Spinner spinner = (Spinner)FindViewById(Resource.Id.spinner4); 
ArrayAdapter adapter = ArrayAdapter.CreateFromResource this, Resource.Array.opt1, Android.Resource.Layout.SimpleSpinnerItem); 
adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); 
spinner.Adapter = adapter; 
} 
else
{ 
Spinner spinner = (Spinner) FindViewById(Resource.Id.spinner4); 
ArrayAdapter adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.opt2, Android.Resource.Layout.SimpleSpinnerItem); 
adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); 
spinner.Adapter = adapter; 
}
}

然后调用该事件使用此

spin3.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spin3_onItemSelected);