마지막에 버튼을 하나만 추가하고 싶은데 itemList에서 버튼 만들면 된다고 생각했는데 그게 아닌가 보네요.
리스트뷰 마지막에 버튼을 추가하려면 어떤식으로 해야하나요?
<ItemList.java>
public class ItemList {
private String listText;
private Button button;
public ItemList(String text) { this.listText = text; }
public ItemList(Button button) { this.button = button; }
public String getListText() { return listText;}
public String getBtnText() { return button.getText().toString();}
}
[RecyclerViewAdapter.java]
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
private ArrayList<ItemList> itemList = new ArrayList<ItemList>();
public class ViewHolder extends RecyclerView.ViewHolder {
TextView textView;
Button button;
public ViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.itemTitle);
}
public TextView getTextView() {
return textView;
}
public Button getBtnView() {
return button;
}
}
public RecyclerViewAdapter(ArrayList<ItemList> list) {
itemList = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.item_list, parent, false);
RecyclerViewAdapter.ViewHolder vh = new RecyclerViewAdapter.ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
ItemList item = itemList.get(position);
if(item.getListText() != null) {
String text = item.getListText();
holder.getTextView().setText(text);
} else {
String text = item.getBtnText();
holder.getBtnView().setText(text);
}
}
@Override
public int getItemCount() {
return itemList.size();
}
public void addItem(ItemList data) {
itemList.add(data);
}
}