で私は、メッセージングアプリケーションに取り組んでいますし、メッセージの所有者が誰であるかに応じて、左または右から来たものとしてチャットバブルを設定したいリスト項目の表示やデータへのアクセス。 MessageAdapter
インサイドは同時に
public class Message {
public String messageText;
public boolean mine;
// ...Constructor
}
私が持っている:私はRecyclerViewにListViewコントロールから移行するチュートリアルを、以下のと同時に、項目のデータとそのビューの両方にアクセスする方法に関して、今は不明だされている
@Override
public MessageHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(this.itemResource, parent, false);
return new MessageHolder(this.context, view);
}
@Override
public void onBindViewHolder(MessageHolder holder, int position) {
Message message = this.messages.get(position);
holder.bindMessage(message);
}
NullPointerException
を取得することなく。私が使用するコードは次のようになります。私はonCreateViewHolder
に入れた場合
Drawable background = getResources().getDrawable(message.mine ? R.drawable.bubble_right : R.drawable.bubble_left);
background.setColorFilter(getResources().getColor(R.color.ColorPrimary), PorterDuff.Mode.SRC_IN);
view.findViewById(R.id.message_text).setBackgroundDrawable(background);
しかし、私は所有権を確認する個々のメッセージにアクセスする方法を見つけ出すことはできません。私がonBindViewHolder
に入れた場合、私はmessage
ですが、その見解を得ることはできません。これをどうすれば解決できますか?
私は 'onCreateViewHolder'と' onBindViewHolder'が一緒に 'getView'を構成していることを理解しています。しかし、私はこの知識を自分の状況に適用する方法が不明です。あなたは私の質問に を見ることができるように、私は 'message.mine'が真と評価するか否かに応じて、' bubble_left'または 'bubble_right'のいずれかに' TextView'の背景を設定したいと思います。私は 'message'とそのビュー(バックグラウンドを設定する)の両方に同時にアクセスする方法を知らない。 – HEATH3N
私の答えを更新しました。 – Neo