【发布时间】:2019-11-29 22:07:04
【问题描述】:
我需要从 FragmentDialog 获取按下按钮对适配器的响应。所以基本上我已经为视图中的按钮设置了一个点击侦听器,现在当我按下该按钮时,对话框打开,我需要获取我在该对话框中设置的两个按钮的响应。
我的 FragmentDialog:
public class FragmentDialog extends AppCompatDialogFragment{
private EditText edtTextAmount;
private TextView txtEnterAmount;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
LayoutInflater inflater=getActivity().getLayoutInflater();
View view=inflater.inflate(R.layout.fragment_add_amount,null);
builder.setView(view)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
edtTextAmount=view.findViewById(R.id.edtTtxt_enterAmount);
return builder.create();
}
}
我的适配器:
public class WatchlistAdaptor extends RecyclerView.Adapter<WatchlistAdaptor.WatchlistViewHolder> {
//DescriptionFragment descriptionFragment;
private LayoutInflater inflater;
private ArrayList<WatchlistItems> watchlistItems;
private Context context;
private OnItemClickListener mListener;
public interface OnItemClickListener {
void onDeleteClickRV(int position);
}
public void setOnItemClickListener(OnItemClickListener listener) {
mListener = listener;
}
class WatchlistViewHolder extends RecyclerView.ViewHolder {
private ImageView cryptoImg;
private TextView cryptoAcronym;
private TextView cryptoName;
private Button btnAddToActCurrencies;
WatchlistViewHolder(View itemView/*, WatchlistAdaptor adaptor*/, final OnItemClickListener listener) {
super(itemView);
this.cryptoImg = itemView.findViewById(R.id.img_wallet_WatchlistRV_cryptoImage);
this.cryptoAcronym = itemView.findViewById(R.id.txt_wallet_WatchlistRV_cryptoAcronym);
this.cryptoName = itemView.findViewById(R.id.txt_wallet_WatchlistRV_cryptoName);
this.btnAddToActCurrencies = itemView.findViewById(R.id.btn_wallet_WatchlistRV_AddToActCurrencies);
// this.animAlpha = AnimationUtils.loadAnimation(context,R.anim.anim_alpha);
btnAddToActCurrencies.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentActivity activity = (FragmentActivity) (context);
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentDialog fragmentDialog = new FragmentDialog();
fragmentDialog.show(fragmentManager, "fragmentalert");
}
}
});
}
}
... }
【问题讨论】:
-
使用
interface创建自定义事件
标签: android android-fragments interface adapter android-alertdialog