我正在使用Firebase製作應用。在這裏,我將recyclerview與Firebase實時數據庫連接起來。但是回收商的觀點正在重複,不知道爲什麼。點擊下載,創建另一個相同的回收站視圖元素。請幫助解決這個問題。提前致謝。 :) See Image hereAndroid Recyclerview元素正在重複
適配器代碼: -
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_view, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
elements elements = elementses.get(position);
holder.t1.setText(elements.getTitle());
final String s1 = elements.getPdf();
holder.b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(context, Uri.parse(s1));
}
});
}
@Override
public int getItemCount() {
return elementses.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
public TextView t1;
public Button b1;
public ViewHolder(View itemView) {
super(itemView);
t1 = (TextView)itemView.findViewById(R.id.title);
b1 = (Button)itemView.findViewById(R.id.download_btn);
}
}
@Override
public int getItemViewType(int position) {
return position;
}
主要活動回收站視圖: -
recyclerView = (RecyclerView) findViewById(R.id.recycler_main);
recyclerView.hasFixedSize();
recyclerView.setLayoutManager(new
LinearLayoutManager(getApplicationContext()));
elementsList = new ArrayList<>();
mDatabase = FirebaseDatabase.getInstance().getReference();
main_adapter = new Main_Adapter(getApplicationContext(),elementsList);
recyclerView.setLayoutManager(new
LinearLayoutManager(getApplicationContext(),
LinearLayoutManager.VERTICAL, false));
recyclerView.setAdapter(main_adapter);
main_adapter.notifyDataSetChanged();
recyclerView.setNestedScrollingEnabled(false);
recyclerView.setHasFixedSize(true);
加載數據前清除您的列表或存儲過的任何數據。 –
請發佈您的firebase recyler adupter代碼 – Hamza
它可能你附加listeneron兩個請 – Hamza