2015-05-08 97 views
0

我跟隨tutorial導航到我的應用程序抽屜,這很好。如何添加微調器到RecyclerView

該模式涉及使用包含圖像和一些TextViews的標頭填充RecyclerView的第一個位置。這很好,但現在我想在其中添加一個Spinner,但是無法理解如何設置它。

問題是當我創建dataAdapter,我得到「無法解析構造函數」。我認爲這是由於未正確提供Context

ArrayAdapter<String> dataAdapter =new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list); 

在這一點上我在RecyclerAdapterViewHolder類,所以「這」不是一個Activity。我得到,你可以使用parent.this或活動name.this但這似乎並不正確(並且不起作用!)。

如何繞過「無法解析構造函數」錯誤?

以下是我的RecyclerAdapter中的整個onBindViewHolder

@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,其中一個接一個地有SpinnerRecyclerView

回答

0

我會建議在用於初始化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); 

} 
... 
+0

感謝,林不知道我遵循有關我的調用方法創建的DataAdapter的一部分。然而,將活動對象傳遞到我的回收站適配器似乎工作。我讀過這不是最有效的做事方式? – jezza101