Android 将BaseAdapter用于微调器
任务是用POJO对象的值填充微调器。在此之前,我检查了普通字符串值和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
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);