イベントリスナに対応した実装を作成 WIP

This commit is contained in:
r-ca committed 2024-01-25 12:06:21 +09:00
1 parent a815d3b1b4
commit 03d78b1200
2 files changed
+45 -23

No files matched your search

@@ -23,7 +23,10 @@ public class LacertaSelectDirDialog extends DialogFragment {
RecyclerView recyclerView = view.findViewById(R.id.select_dir_recycler_view); RecyclerView recyclerView = view.findViewById(R.id.select_dir_recycler_view);
recyclerView.setHasFixedSize(true); recyclerView.setHasFixedSize(true);
SelectDirDialogItemAdapter adapter = new SelectDirDialogItemAdapter(); SelectDirDialogItemAdapter adapter = new SelectDirDialogItemAdapter((name, itemId) -> {
Toast.makeText(getContext(), "Called", Toast.LENGTH_SHORT).show();
dismiss();
});
recyclerView.setAdapter(adapter); recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new androidx.recyclerview.widget.LinearLayoutManager(getContext())); recyclerView.setLayoutManager(new androidx.recyclerview.widget.LinearLayoutManager(getContext()));
@@ -8,37 +8,56 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import one.nem.lacerta.model.ListItem;
public class SelectDirDialogItemAdapter extends RecyclerView.Adapter<SelectDirDialogItemAdapter.ViewHolder> { public class SelectDirDialogItemAdapter extends RecyclerView.Adapter<SelectDirDialogItemAdapter.ViewHolder> {
@Override ArrayList<ListItem> listItems;
public SelectDirDialogItemAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { LacertaSelectDirDialogEventListener listener;
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.common_list_item, parent, false);
return new SelectDirDialogItemAdapter.ViewHolder(view);
}
@Override public SelectDirDialogItemAdapter(LacertaSelectDirDialogEventListener listener) {
public void onBindViewHolder(SelectDirDialogItemAdapter.ViewHolder holder, int position) { this.listener = listener;
holder.title.setText("title"); }
holder.description.setText("description");
}
@Override public void setListItems(ArrayList<ListItem> listItems) {
public int getItemCount() { this.listItems = listItems;
return 100; }
}
public class ViewHolder extends RecyclerView.ViewHolder { @Override
public SelectDirDialogItemAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.common_list_item, parent, false);
return new SelectDirDialogItemAdapter.ViewHolder(view);
}
TextView title; @Override
TextView description; public void onBindViewHolder(SelectDirDialogItemAdapter.ViewHolder holder, int position) {
ListItem listItem = listItems.get(position);
holder.title.setText(listItem.getTitle());
holder.description.setText(listItem.getDescription());
holder.itemView.setOnClickListener(v -> {
listener.onDirSelected(listItem.getTitle(), listItem.getItemId());
});
}
@Override
public int getItemCount() {
return listItems.size();
}
public ViewHolder(@NonNull View itemView) { public class ViewHolder extends RecyclerView.ViewHolder {
super(itemView);
title = itemView.findViewById(R.id.item_title); TextView title;
description = itemView.findViewById(R.id.item_description); TextView description;
public ViewHolder(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.item_title);
description = itemView.findViewById(R.id.item_description);
}
} }
}
} }