Android 将BaseAdapter用于微调器

Android 将BaseAdapter用于微调器,android,android-layout,android-widget,android-spinner,Android,Android Layout,Android Widget,Android Spinner,任务是用POJO对象的值填充微调器。在此之前,我检查了普通字符串值和BaseAdapter 我在活动组中有一项活动 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_date_filter); startMonth = (Spinner) findViewById(R.id.start

任务是用POJO对象的值填充微调器。在此之前,我检查了普通字符串值和BaseAdapter

我在活动组中有一项活动

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_date_filter);

    startMonth = (Spinner) findViewById(R.id.startMonth);

    startMonth.setAdapter(new CustomSpinnerAdapter(getParent(), new ArrayList<String>()));
}
我找不到关于这个问题的任何有效答案。有什么想法吗


提前谢谢

需要将视图设置为相应的视图对象,以使微调器正常工作。 为此,您需要更改活动的oncreate:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.activity_date_filter, null); 
this.setContentView(viewToLoad); 
完整解释如下:

您需要将视图设置为相应的视图对象,以使微调器正常工作。 为此,您需要更改活动的oncreate:

View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.activity_date_filter, null); 
this.setContentView(viewToLoad); 
完整解释如下:

从您的适配器代码中,我可以说您还没有初始化LayoutInflater,如果不这样做,您正在尝试膨胀布局。因此,在构造函数中,使用:

 this.mInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

从您的适配器代码中,我可以说您还没有初始化LayoutInflater,如果不这样做,您正在尝试膨胀布局。因此,在构造函数中,使用:

 this.mInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

你需要用它做什么解释clearly@TheMechanic请检查编辑。您需要用它做什么解释clearly@TheMechanic请检查编辑。我以前尝试过上述代码。但是,不知怎的,它当时不起作用!无论如何,谢谢你。但我仍然对spinner的工作方式感到困惑。现在可以了。当我在活动中设置contentView时,为什么它不同时为微调器设置视图?这是因为您在活动中嵌入了第二个xml作为微调器视图。即使您可以为您的微调器(如dropdownview等)设置多个布局,因此您也可以放大微调器视图以及活动。我以前尝试过上述代码。但是,不知怎的,它当时不起作用!无论如何,谢谢你。但我仍然对spinner的工作方式感到困惑。现在可以了。当我在活动中设置contentView时,为什么它不同时为微调器设置视图?这是因为您在活动中嵌入了第二个xml作为微调器视图。甚至可以将多个布局设置为微调器(如dropdownview等),因此可以从上下文中展开微调器视图和活动I展开布局。请参阅适配器构造函数。mInflater=LayoutInflater.fromcontext;我从上下文中展开布局。请参阅适配器构造函数。mInflater=LayoutInflater.fromcontext;
 this.mInflater= (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);