0
を動作しません。私はRecycleView
を持って、私は私のRecycleviewのすべての行のテキストと時間を埋めるために結合アンドロイドのデータを使用したいが、私は後に結合という奇妙な問題を抱えているメッセージのリストが含まれていますすべての行にメッセージ、TextView
のテキストと時間は、テキストを設定しないで空のテキストで埋めてください!Androidのデータバインディングは、リサイクルビューで正しく
私RecyceViewアダプタ:
@Override
public BaseRVHolder onCreateViewHolder(ViewGroup parent, int viewType) {
layoutInflater=LayoutInflater.from(parent.getContext());
viewGroup=parent;
View view= layoutInflater.inflate(layout[viewType], null);
try {
return holder.getConstructor(View.class,LayoutInflater.class,ViewGroup.class,Context.class).newInstance(view,layoutInflater,viewGroup,context);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
public Object getItem(int position){
if(position<items.size())
return items.get(position);
return null;
}
@Override
public void onBindViewHolder(BaseRVHolder holder, int position) {
if(holder!=null)
holder.fill(context,layoutInflater,viewGroup,items.get(position),position,getItemViewType(position),getObjects());
}
@Override
public int getItemViewType(int position) {
if(messages.get(position).getFrom() == homeId){
return 1;
}
return 0;
}
とメッセージの私のViewHolderの()メソッドを埋める:
@Override
public void fill(final Context context, LayoutInflater layoutInflater, ViewGroup viewGroup, final Message message, int pos, int viewType, Object... objects) {
if(viewType==0) {
AdapterMessageSendActivitytBinding binding = AdapterMessageSendActivitytBinding.inflate(this.inflater);
binding.setMessage(message);
binding.notifyChange();
binding.invalidateAll();
}else {
AdapterMessageReceiveActivityBinding binding =AdapterMessageReceiveActivityBinding.inflate(this.inflater);
binding.setMessage(message);
}
}
Message.java:アダプターの
public class Message extends BaseModel implements Serializable{
@PrimaryKey(autoincrement = true)
private int id;
@Column
private int from;
@Column
private String username;
@Column
private String text;
@Column
transient DateTime dateTime;
private List<ToMessage> recipients;
//getter and setters are here...
とレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="message"
type="com.example.familydesk.model.Message"></variable>
</data>
<LinearLayout
android:orientation="horizontal"
android:padding="5dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView android:layout_width="56dp" android:layout_height="56dp"
android:src="@drawable/house_logo"/>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:background="@drawable/chat_back_white_nine_patch"
android:layout_marginRight="10dp"
android:orientation="vertical">
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/contentTv"
android:text="@{message.text}"
android:gravity="right"/>
<TextView android:layout_width="match_parent" android:layout_height="wrap_content"
android:text="@{message.dateTime.toString()}"
android:gravity="right"
android:id="@+id/time_dateTv"
android:layout_marginTop="5dp"
android:singleLine="true"/>
</LinearLayout>
</LinearLayout>
</layout>
私のコードで何が問題なのですか?誰でもPLZを助けることができますか?
私はあなたのリサイクラビューの実装が複雑すぎると思います。 [this](http://www.androidhive.info/2016/01/android-working-with-recycler-view/)チュートリアルを参照してください。 – Nikhil