-3
我的項目基於片段,我試圖實現HypeLabs網狀網絡聊天作爲額外的功能。如何將附加URL中顯示的Hype Labs Github項目中的活動轉換爲諸如ChatFragment和ContactsFragment之類的片段。從ListView適配器轉換爲RecyclerView適配器的片段
原來ContactsViewAdapter如下:
public class DirectContactsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
protected final Activity mActivity;
private Map<String, Store> stores;
public DirectContactsAdapter(@NonNull Activity mActivity, Map<String, Store> stores) {
this.mActivity = mActivity;
this.stores = stores;
}
protected Map<String, Store> getStores() {
return stores;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView;
itemView = LayoutInflater.from(mActivity).inflate(R.layout.row_direct_contacts, parent, false);
return new DirectContactsViewHolder(itemView);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(holder instanceof DirectContactsViewHolder) {
final DirectContactsViewHolder directContactsHolder = (DirectContactsViewHolder) holder;
final Store contactsStore = this.stores.get(position);
try {
directContactsHolder.displayName.setText(contactsStore.getInstance().getRealmStringIdentifier());
directContactsHolder.contentIndicator.setVisibility(contactsStore.hasNewMessages
() ? View.VISIBLE : View.INVISIBLE);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(DirectContactsFragment.this, DirectChatsFragment
.class);
TextView displayName = (TextView) view.findViewById(R.id.display_name);
CharSequence charSequence = displayName.getText();
setDisplayName(charSequence.toString());
Store store = chatApplication.getStores().get(getDisplayName());
store.setDelegate(contactActivity);
intent.putExtra(ChatActivity.INTENT_EXTRA_STORE, store.getInstance().getStringIdentifier());
startActivity(intent);
}
});
} catch (Exception e) {
AppHelper.LogCat("Contacts adapters Exception " + e.getMessage());
}
}
}
@Override
public int getItemCount() {
return stores.size();
}
public Store getItem(int position) {
return stores.get(position);
}
public class DirectContactsViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.avatar)
ImageView userImage;
@BindView(R.id.display_name)
TextView displayName;
@BindView(R.id.new_content)
ImageView contentIndicator;
DirectContactsViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}}
我很新的片段和Android Studio生成進一步迷惑我的例子。
任何幫助,高度讚賞。
究竟什麼是烏拉圭回合的問題:這樣做ü應該實現這個片段後界面
?你想要什麼?你的適配器似乎是正確的..但你必須在onBindViewHolder方法中放一些代碼來顯示 – borune
Hello @borune感謝您的評論。是的RecyclerViewAdapter似乎是正確的,但ListViewAdapter中還有一些尚未實現的東西,例如onTouch事件,它打開另一個傳遞一些數據的Activity。我也知道我不能在碎片中使用意圖,所以我該如何解決這個問題。到目前爲止,這是我基於Google的一些研究成果。我上面更新了我的代碼。 –