当在我的应用程序中添加导航抽屉时,我使用了一种模式,涉及到填充第一个位置的 RecyclerView
头部包含一张图片和一些 TextViews
. 这一切都很好,但现在我想添加一个。Spinner
但我不明白如何设置这个问题。
问题是当我创建dataAdapter时,我得到一个 "无法解析构造函数"。 我认为这是由于没有正确地提供一个 "不能解析构造函数"。Context
?
ArrayAdapter<String> dataAdapter =new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
此时的我,正处于 ViewHolder
境内 RecyclerAdapter
所以 "这 "不是一个 Activity
. 我知道你可以使用parent.this或activity name.this,但这似乎也不对(而且没有工作!)。
我怎样才能绕过 "无法解析构造函数 "的错误?
下面是整个 onBindViewHolder
在我 RecyclerAdapter
.
@Override
public void onBindViewHolder(navigationDrawerAdapter.ViewHolder holder, int position) {
if(holder.HolderID ==1) {
holder.textView.setText(mNavTitles[position - 1]); // Setting the Text with the array of our Titles
holder.imageView.setImageResource(mIcons[position -1]);// Settimg the image with array of our icons
}
else{
holder.imageProfile.setImageResource(profile);
holder.textName.setText(name);
holder.textEmail.setText(email);
List<String> list = new ArrayList<String>();
list.add("TEST");
ArrayAdapter<String> dataAdapter =new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
holder.siteSpinner = (Spinner) findViewById(R.id.siteSpinner);
holder.siteSpinner.setAdapter(dataAdapter);
}
}
另外,这样的做法对吗? 我想知道在位置一创建一个 "头 "是否是一个好办法? 是否可以采用另一种方法,即在第一位置创建一个 "页眉"?LinearLayout
我的导航抽屉里有 Spinner
和 RecyclerView
一个接一个?
我建议在你用来初始化RecyclerAdapter的方法中创建dataAdapter对象(即:构造函数),并将调用者的上下文传递给该方法。
例如
ArrayAdapter<String> dataAdapter;
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
public MyRecyclerAdapter(Vector<int> myItems, Context leContext) {
...
dataAdapter =new ArrayAdapter<String>(leContext, android.R.layout.simple_spinner_item,list);
}
...