Android Material Design导航抽屉setClickListener

杂凑

我试图将我的旧应用程序转换为新的android材质设计。但是在我的情况onclick下,我无法使用我的getSupportFragmentManager()method.I不知道我在这里做错了什么。

public class DrawerListAdapter extends RecyclerView.Adapter<DrawerListAdapter.DrawerViewHolder> {

    private Context context;
    private Activity activity;
    private LayoutInflater inflater;
    List<info> data = Collections.emptyList();

    public DrawerListAdapter(Context context, List<info> data) {
        inflater = LayoutInflater.from(context);
        this.data = data;
        this.context = context;
    }

    @Override
    public DrawerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = inflater.inflate(R.layout.custome_row, parent, false);
        DrawerViewHolder holder = new DrawerViewHolder(view);
        return holder;
    }

    @Override
    public void onBindViewHolder(DrawerViewHolder holder, int position) {

        info current = data.get(position);
        holder.title.setText(current.title);
        holder.icon.setImageResource(current.iconId);

        holder.setClickListener(new DrawerViewHolder.ClickListener() {
            @Override
            public void onClick(View v, int position, boolean isLongClick) {

                switch (position) {
                    case 1:
                        getSupportFragmentManager()
                                .beginTransaction()
                                .replace(R.id.content_frame, Fragment_home.newInstance(),
                                        Fragment_home.TAG).commit();

                        break;
                    case 2:
                        break;

                }

            }
        });


    }

    @Override
    public int getItemCount() {
        return data.size();
    }

    static class DrawerViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        TextView title;
        ImageView icon;

        private ClickListener clickListener;

        public DrawerViewHolder(View itemView) {
            super(itemView);

            title = (TextView) itemView.findViewById(R.id.text_title);
            icon = (ImageView) itemView.findViewById(R.id.imageView);

            itemView.setOnClickListener(this);
        }

        /* Interface for handling clicks - both normal and long ones. */
        public interface ClickListener {

            /**
             * Called when the view is clicked.
             *
             * @param v           view that is clicked
             * @param position    of the clicked item
             * @param isLongClick true if long click, false otherwise
             */
            public void onClick(View v, int position, boolean isLongClick);

        }

        /* Setter for listener. */
        public void setClickListener(ClickListener clickListener) {
            this.clickListener = clickListener;
        }


        @Override
        public void onClick(View view) {
            clickListener.onClick(view, getPosition(), false);

        }
    }
}
朱利安·奥斯(Julian Os)

我建议您使用Android设计支持库中的NavigationView类来设置您的抽屉,该类还允许使用xml资源填充菜单。然后,您可以通过注册一个NavigationView.NavigationItemSelectedListener

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

下Api的Android Material Design导航抽屉

来自分类Dev

Android Material Design导航抽屉菜单图标变化

来自分类Dev

Android Material Design

来自分类Dev

Android Material Design AppCompat

来自分类Dev

旧版Android上的Material Design

来自分类Dev

Android Material Design组件示例

来自分类Dev

Android Material Design简单菜单

来自分类Dev

导航抽屉打开时,从工具栏中删除阴影-Material Design支持库

来自分类Dev

Android导航抽屉内容

来自分类Dev

Android导航抽屉图像

来自分类Dev

Android导航抽屉样式

来自分类Dev

Android导航抽屉片段

来自分类Dev

Android外包导航抽屉

来自分类Dev

Android导航抽屉布局

来自分类Dev

在KitKat上使用Android L Material Design

来自分类Dev

Android Material Design分隔线颜色

来自分类Dev

Android Lollipop中的Material Design颜色

来自分类Dev

标签上的android material design click事件

来自分类Dev

配备Android L的Nexus 5的Material Design

来自分类Dev

带有AppCompat的Android Material Design Datepicker

来自分类Dev

在Android Studio中使用Material Design组件

来自分类Dev

Android:Material Design中缺少溢出菜单

来自分类Dev

KitKat 4.4上的Android Material Design

来自分类Dev

Android Material Design UI 和没有 Material Design 的 Android UI 有什么区别?

来自分类Dev

Android:SurfaceView阻止了导航抽屉

来自分类Dev

Android中的抽屉导航问题

来自分类Dev

带导航抽屉的Android布局

来自分类Dev

Android-导航抽屉片段

来自分类Dev

Android:导航抽屉垂直阴影