Adapter実装

This commit is contained in:
rca 2024-07-06 15:27:31 +09:00
parent 1306df3ee9
commit 21549fb589

View File

@ -1,20 +1,54 @@
package one.nem.kidshift.feature.common.adapter;
import android.annotation.SuppressLint;
import android.view.ViewGroup;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
import one.nem.kidshift.feature.common.R;
import one.nem.kidshift.model.tasks.TaskItemModel;
public class TaskListItemAdapter extends RecyclerView.Adapter<TaskListItemAdapter.ViewHolder> {
private List<TaskItemModel> taskItemModelList;
private CompleteButtonClickedCallback callback;
public TaskListItemAdapter() {
}
public void setTaskItemModelList(List<TaskItemModel> taskItemModelList) {
this.taskItemModelList = taskItemModelList;
}
public void setCallback(CompleteButtonClickedCallback callback) {
this.callback = callback;
}
@NonNull
@Override
public TaskListItemAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return null;
View view = View.inflate(parent.getContext(), R.layout.list_item_common_task_list_item, null);
return new ViewHolder(view);
}
@SuppressLint("SetTextI18n")
@Override
public void onBindViewHolder(@NonNull TaskListItemAdapter.ViewHolder holder, int position) {
TaskItemModel taskItemModel = taskItemModelList.get(position);
holder.taskTitle.setText(taskItemModel.getName());
holder.taskContents.setText(taskItemModel.getReward() + ""); // TODO: ハードコードやめる
holder.completedButton.setOnClickListener(v -> {
if (callback != null) {
callback.onClicked(taskItemModel.getId());
}
});
}
@Override
@ -23,8 +57,21 @@ public class TaskListItemAdapter extends RecyclerView.Adapter<TaskListItemAdapte
}
public static class ViewHolder extends RecyclerView.ViewHolder {
TextView taskTitle;
TextView taskContents;
Button completedButton;
public ViewHolder(@NonNull View itemView) {
super(itemView);
taskTitle = itemView.findViewById(R.id.task_title_text_view);
taskContents = itemView.findViewById(R.id.task_contents_text_view);
completedButton = itemView.findViewById(R.id.actbutton);
}
}
public interface CompleteButtonClickedCallback {
void onClicked(String taskId);
}
}