2017-10-13 5 views
0

ここで問題が発生しています。データのバインドでは、パブリックオブジェクトは使用できません。私は他のクラスからデータを取得し、テキストをXMLに設定するクラスを作成することになっていました。RecyclerView onBind、データバインディングなし

public class EventsAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolder>{ 
private List<LauncherActivity.ListItem> listItems; 
private Context context; 
public EventsAdapter(List<LauncherActivity.ListItem> listItems, Context context) { 
    this.listItems = listItems; 
    this.context = context; 
} 

@Override 
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.event_list, parent, false); 
    return new ViewHolder(v); 
} 

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
    LauncherActivity.ListItem listItem = listItems.get(position); 
    holder. 
} 

@Override 
public int getItemCount() { 
    return listItems.size(); 
} 

public class ViewHolder extends RecyclerView.ViewHolder { 
    public TextView textHeading = null; 
    public TextView textDescription = null; 
    public ViewHolder(View itemView) { 
     super(itemView); 
     textHeading = (TextView)itemView.findViewById(R.id.viewHead); 
     textDescription = (TextView)itemView.findViewById(R.id.viewDesc); 
    } 
} 

} 
+0

コードをテキストとして追加してください。 –

+0

確かに質問のコードを貼り付けるよりもスクリーンショットをアップロードする方が難しいです。あなたのコードを手に入れて編集して答えを出すことができる人を考えたことがありますか? –

+0

私は質問を編集してください:) – prazeev

答えて

0

public class EventsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> 

この先:

public class EventsAdapter extends RecyclerView.Adapter<ViewHolder> //your ViewHolder 

あなたのonBindViewHolderはこのようになります

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 
    LauncherActivity.ListItem listItem = listItems.get(position); 

} 
0

これは、onBindメソッドでRecyclerView.ViewHolderを使用しているため解決できませんでした。変数を解決するには、カスタムEventsAdapter.ViewHolderクラスを使用してください。このため拡張で

public void onBindViewHolder(EventsAdapter.ViewHolder holder, int position) { 

} 
+0

いいえ、それは解決策を与えていません。 – prazeev

0

のtry変更.. RecyclerView.Adapter < "EventsAdapter.ViewHolder"> "" なしもちろん

0

のごEventsAdapterRecyclerView.Adapter<EventsAdapter.MyViewholder>を拡張し、再度メソッドやコンストラクタを実装します:例えばのために、onBindViewHolderEventsAdapter.ViewHolder holderで作成されます。このことができます

・ホープ..あなたが方法が

変更これを使用することができない理由は、あなたのViewHolder使用していない

0

これを行うには2つの方法があります。

は、あなたのEventsAdapterが

@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 

    LauncherActivity.ListItem listItem = listItems.get(position); 

    ((ViewHolder)holder).textHeading.setText(....) 
} 

を型キャストの助けを借りてRecyclerView.Adapter

@Override 
public void onBindViewHolder(ViewHolder holder, int position) { 

    LauncherActivity.ListItem listItem = listItems.get(position); 
    holder.textHeading.setText(....) 
} 

または

を拡張作り、準備できた。 :)ハッピーコーディング:)

関連する問題