在我的应用程序中,我显示一个带有自定义适配器的对话框,其中包含项目列表。我想获取在对话框中单击的项目的值并关闭它。...我只能正确显示它。
这是我创建对话框的方式:
AlertDialog dialogBuilder = new AlertDialog.Builder(mContext).create();
LayoutInflater inflater = getLayoutInflater();
View dialogView = inflater.inflate(R.layout.banderes_dialog, null);
myrecyclerview = dialogView.findViewById(R.id.recycleview);
myrecyclerview.setLayoutManager(new LinearLayoutManager((dialogView.getContext())));
RecyclerViewAdapterLanguages recyclerAdapter = new RecyclerViewAdapterLanguages(dialogView.getContext(), lstLanguages);
myrecyclerview.addItemDecoration(new DividerItemDecoration(dialogView.getContext(), DividerItemDecoration.VERTICAL));
myrecyclerview.setAdapter(recyclerAdapter);
dialogBuilder.setView(dialogView);
dialogBuilder.show();
这是我的oncreateviewholder:
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v;
v= LayoutInflater.from(mContext).inflate(R.layout.bandera_item,parent,false);
final MyViewHolder vHolder = new MyViewHolder(v);
vHolder.item_language.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Toast.makeText(mContext, "Click on an item", Toast.LENGTH_SHORT).show();
}
});
return vHolder;
}
我如何知道该项目在我的主要活动上点击了。如何关闭oncreateviewholder上的对话框(在吐司之后)
谢谢!
答案 0 :(得分:0)
您可以拥有一个界面,并在活动中使用它的回调来关闭对话框
public interface OnItemClickListner {
void OnItemClicked(View view, int position);
}
将您的侦听器传递给适配器,然后在项目中单击
vHolder.item_language.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Toast.makeText(mContext, "Click on an item",
Toast.LENGTH_SHORT).show();
onItemClickListner.OnItemClicked(v, position);
}
});
然后在您的活动中实施界面 在此之后,您将拥有其覆盖方法,可以在其中关闭对话框
@Override
public void OnItemClicked(View view, int position) {
dialog.dismiss();
}