【发布时间】:2017-05-08 19:49:58
【问题描述】:
我使用 Recyclerview 扩展了 Fragment 类。长按 textView 后我需要一个弹出菜单。我已经显示了下面的代码。没有错误,所以我不知道再看哪里了。
public class RecyclerViewFragment extends Fragment implements View.OnCreateContextMenuListener {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
RecyclerView recyclerView = (RecyclerView) inflater.inflate(
R.layout.recycler_view, container, false);
ContentAdapter adapter = new ContentAdapter(recyclerView.getContext());
recyclerView.setAdapter(adapter);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnCreateContextMenuListener {
public ImageView avator;
public TextView name;
public TextView description;
public TextView num;
public View divider;
public ViewHolder(LayoutInflater inflater, ViewGroup parent) {
super(inflater.inflate(R.layout.listing_view, parent, false));
avator = (ImageView) itemView.findViewById(R.id.listing_avatar);
name = (TextView) itemView.findViewById(R.id.listing_title);
description = (TextView) itemView.findViewById(R.id.listing_desc);
num = (TextView) itemView.findViewById(R.id.listing_num) ;
divider= itemView.findViewById(R.id.listing_div);
itemView.setOnCreateContextMenuListener(this);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
if (v.getId()==R.id.list) {
//AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle("Action");
String[] menuItems = getResources().getStringArray(R.array.arr_menu);
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
}
【问题讨论】:
-
回收器视图如何扩展片段类?
标签: android android-fragments android-recyclerview contextmenu long-press