我创建了一个类,用于在RecyclerView中的CardView中显示员工详细信息.新要求是在点击时显示卡片的弹出窗口.所以我添加了setOnClickListener,它工作正常(我在Log中得到了卡片名称).但是如何通过此点击打开弹出窗口?其实我是android的新手
public class EmployeeCardAdapter extends RecyclerView.Adapter{ private Context context; private EmployeeBean employeeBean; private ArrayList employeeList; public EmployeeCardAdapter(Context context, ArrayList employeeList){ this.context = context; this.employeeList = employeeList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.employee_card, parent, false); ViewHolder viewHolder = new ViewHolder(v); return viewHolder; } @Override public void onBindViewHolder(ViewHolder viewHolder, int position) { EmployeeBean employeeBean = employeeList.get(position); viewHolder.employeeCardTitle.setText(employeeBean.getName()); viewHolder.employeeName.setText(employeeBean.getName()); viewHolder.employeeQualification.setText(employeeBean.getQualification()); viewHolder.employeeExperiance.setText(employeeBean.getExperiance()); } @Override public int getItemCount() { return employeeList.size(); } public static class ViewHolder extends RecyclerView.ViewHolder{ public TextView employeeCardTitle; public TextView employeeName; public TextView employeeQualification; public TextView employeeExperiance; public View view; public ClipData.Item currentItem; public ViewHolder(final View itemView) { super(itemView); employeeCardTitle = (TextView)itemView.findViewById(R.id.employee_card_title); employeeName = (TextView)itemView.findViewById(R.id.employee_name); employeeQualification = (TextView)itemView.findViewById(R.id.employee_Qualification); employeeExperiance = (TextView)itemView.findViewById(R.id.employee_experiance); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } }); } } }
我搜索了很多教程,但每个教程都是从Activity类打开弹出窗口.但在这里我使用片段.我设计了一个弹出窗口布局如下
我可以从上面的适配器类打开这个布局作为弹出窗口吗?
如果你想在特定位置打开弹出窗口而不是需要在showasdropdown中给出位置,请尝试此操作.
public void showPopup(View view) { View popupView = LayoutInflater.from(getActivity()).inflate(R.layout.popup_, null); final PopupWindow popupWindow = new PopupWindow(popupView, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); Button btnDismiss = (Button) popupView.findViewById(R.id.btn_dismiss); btnDismiss.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { popupWindow.dismiss(); } }); popupWindow.showAsDropDown(popupView, 0, 0); }