Android 是否根据微调器的选项更改活动内容?

Android 是否根据微调器的选项更改活动内容?,android,android-activity,spinner,Android,Android Activity,Spinner,我对安卓系统还很陌生。我想根据微调器中选定的选项更改活动内容。例如,我在微调器“Option2”和“Option2”中有两个选项,还有两个日期选择器。我希望我的活动以这种方式工作,当我选择选项1时,我应该看到一个日期选择器,当我选择选项2时,我动态地看到两个日期选择器 这是我的微调器代码 Spinner spinner= (Spinner) findViewById(R.id.spinner); final List<String> List=new ArrayList<Str

我对安卓系统还很陌生。我想根据微调器中选定的选项更改活动内容。例如,我在微调器“Option2”和“Option2”中有两个选项,还有两个日期选择器。我希望我的活动以这种方式工作,当我选择选项1时,我应该看到一个日期选择器,当我选择选项2时,我动态地看到两个日期选择器

这是我的微调器代码

Spinner spinner= (Spinner) findViewById(R.id.spinner);
final List<String> List=new ArrayList<String>();
    List.add("Option1");
    List.add("Option2");

ArrayAdapter<String> Adapter=new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1,List);
    Adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    triptype.setAdapter(Adapter);
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
    {
            @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long id) {
            // TODO Auto-generated method stub
            int pos1=position;
            selectedOption=spinner.getSelectedItem().toString();

            prefs = getSharedPreferences(prefName, MODE_PRIVATE);
            SharedPreferences.Editor editor = prefs.edit();

            //---save the values in the EditText view to preferences---
            editor.putInt("index", pos1);
            editor.putString("value", selectedoption);

            //---saves the values---
            editor.commit();

        }

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

        }

    });
Spinner-Spinner=(Spinner)findViewById(R.id.Spinner);
最终列表=新的ArrayList();
列表。添加(“选项1”);
列表。添加(“选项2”);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,list);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
triptype.setAdapter(适配器);
spinner.setOnItemSelectedListener(新的OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长id){
//TODO自动生成的方法存根
int pos1=位置;
selectedOption=spinner.getSelectedItem().toString();
prefs=getSharedReferences(prefName,MODE_PRIVATE);
SharedReferences.Editor=prefs.edit();
//---将EditText视图中的值保存到首选项---
编辑:putInt(“索引”,pos1);
editor.putString(“value”,selectedoption);
//---保存值---
commit();
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});

在选定方法的微调器上动态添加时间选择器

   @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                // TODO Auto-generated method stub

                int pos1=position;
for(int i=0;i<mainlayout.getChildCount();i++)
{
   View v=mainlayout.getChildAt(i)
   if(v instanceof TimePicker)
    mainlayout.removeView(v);

}

if(pos==0)
{
    TimePicker t=new TimePicker (context);
    mainlayout.addView(t);
 }


else
{


TimePicker t1=new TimePicker (context);
    mainlayout.addView(t1);

TimePicker t2=new TimePicker (context);
    mainlayout.addView(t2);
}   
    }
@覆盖
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长id){
//TODO自动生成的方法存根
int pos1=位置;

对于(int i=0;i如果您不想创建datepicker运行时,那么您应该在xml文件中添加两个datepicker。请记住,保持xml上datepicker的位置相同。并将两个可见性都设置为“GONE”

类文件:

spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
        @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1,
            int position, long id) {
        // TODO Auto-generated method stub
        //set visibility of datepicker
       if(position==0)
        {
           set "visible" to datepicker1,
           set "gone" to datepicker2.
        }
       if(position==1)
        {
           set "gone" to datepicker1,
           set "visible" to datepicker2.
        }
    }
}
spinner.setOnItemSelectedListener(新的OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
内部位置,长id){
//TODO自动生成的方法存根
//设置日期选择器的可见性
如果(位置==0)
{
将“可见”设置为datepicker1,
将“gone”设置为datepicker2。
}
如果(位置==1)
{
将“gone”设置为datepicker1,
将“可见”设置为datepicker2。
}
}
}