如何在没有 ListView 的 ArrayList 中添加 OnitemClickListener

赖弗拉欣

我想在 android studio 中制作一个仪表板。我使用两个 xml 来制作仪表板 main_activity 和 list_item 活动。在编码会话中,我使用了模型类适配器和主类。

public class MainActivity extends AppCompatActivity {

ArrayList<DashModel> dashModelArrayList;
DashAdapter dashAdapter;
private RecyclerView recyclerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    recyclerView = findViewById(R.id.rv1);

    dashModelArrayList = new ArrayList<>();
    String heads[] = {"Jobs", "My Profile", "Messages", "Applied Jobs", "Resume", "Settings"};

    String subs[] = {"12 new jobs found", "75% complete", "2 new messages", "3 applies jobs", "Edit resume", "Set preferences"};

    int images[] = {R.drawable.find_jobs, R.drawable.profile, R.drawable.messages, R.drawable.applied_jobs,
            R.drawable.resume, R.drawable.settings};

    for (int count = 0; count < heads.length; count++) {
        DashModel dashModel = new DashModel();
        dashModel.setHead(heads[count]);
        dashModel.setSub(subs[count]);
        dashModel.setImage(images[count]);
        dashModelArrayList.add(dashModel);
        //this should be retrieved in our adapter

    }
    recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2));
    dashAdapter = new DashAdapter(dashModelArrayList);
    recyclerView.setHasFixedSize(true);
    recyclerView.setAdapter(dashAdapter);
}}

适配器类:

public class DashAdapter extends RecyclerView.Adapter<DashAdapter.ViewHolder> {

ArrayList<DashModel> dashModelArrayList;

public DashAdapter(ArrayList<DashModel> dashModelArrayList) {
    this.dashModelArrayList = dashModelArrayList;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);
    return new ViewHolder(view);
}

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

    String ret_head = dashModelArrayList.get(position).getHead();
    holder.setheader(ret_head);

    String ret_sub = dashModelArrayList.get(position).getSub();
    holder.set_sub(ret_sub);

    int ret_image = dashModelArrayList.get(position).getImage();
    holder.set_image(ret_image);

}

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

public class ViewHolder extends RecyclerView.ViewHolder{

    TextView header,sub_header;
    ImageView images;
    View myView;

    public ViewHolder(View itemView) {
        super(itemView);
        myView = itemView;
    }

    public void setheader(String h)
    {
        header = myView.findViewById(R.id.header);
        header.setText(h);
    }

    public void set_sub(String s)
    {
        sub_header = myView.findViewById(R.id.sub_header);
        sub_header.setText(s);
    }
    public void set_image(int i)
    {
        images = myView.findViewById(R.id.dash_image);
        images.setImageResource(i);
    }


}}

我如何在这里添加 onItemclickListener ?

我期望并想在图标中添加 OnItemclickListener 但我不能也不知道如何添加。

维维克·辛格

onClickListener为 RecyclerView创建一个,你必须创建一个实现RecyclerView.OnItemTouchListener

import android.support.v7.widget.*;
import android.view.*;
import android.content.*;

public class RecyclerViewTouchListener implements RecyclerView.OnItemTouchListener {

    private GestureDetector gestureDetector;
    private ClickListener clickListener;

    public RecyclerViewTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) {
        this.clickListener = clickListener;
        gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                return true;
            }

            @Override
            public void onLongPress(MotionEvent e) {
                View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
                if (child != null && clickListener != null) {
                    clickListener.onLongClick(child, recyclerView.getChildPosition(child));
                }
            }
        });
    }

    @Override
    public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {

        View child = rv.findChildViewUnder(e.getX(), e.getY());
        if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) {
            clickListener.onClick(child, rv.getChildPosition(child));
        }
        return false;
    }

    @Override
    public void onTouchEvent(RecyclerView rv, MotionEvent e) {
    }

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

    }

    public interface ClickListener{

        public void onClick(View view,int position);
        public void onLongClick(View view,int position);
    }
}

之后,您可以将其附加到您RecyclerView的收听点击。

recyclerView.addOnItemTouchListener(new RecyclerViewTouchListener(getActivity(), recyclerView, new RecyclerViewTouchListener.ClickListener(){

        @Override
        public void onClick(View view, int position)
        {
            // TODO: Implement this method


        }

        @Override
        public void onLongClick(View view, int position)
        {
            // TODO: Implement this method
        }                                           
    }));

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ListView OnItemClickListener没有在监听

来自分类Dev

如何在ListView中刷新Youtube Player视图onItemClickListener()

来自分类Dev

ListView和OnItemClickListener中的按钮

来自分类Dev

具有layoutinflater的listview onitemclicklistener

来自分类Dev

在Android中更改ListView的Imageview onItemClickListener的图像

来自分类Dev

在arraylist中添加listview的所有edittexts数据

来自分类Dev

如何将 onItemClickListener 添加到 ListView 行以启动新活动并在 android 中显示该行

来自分类Dev

如何从listview onItemClickListener获取imagelink(url)

来自分类Dev

如何使用CustomAdapter在ListView上设置OnItemClickListener

来自分类Dev

单击时如何使用 onItemClickListener 展开 listView?

来自分类Dev

Android中ListView项内的按钮-如何使其成为onItemClickListener的一部分

来自分类Dev

Android:如何在OnItemClickListener()中调用getActivity()?

来自分类Dev

如何在此代码中实现OnItemClickListener?

来自分类Dev

如何在Recyclerview中取消设置OnitemClickListener

来自分类Dev

如何在此代码中实现OnItemClickListener?

来自分类Dev

Android: OnItemCLickListener not working in listview

来自分类Dev

Android Listview OnItemClickListener

来自分类Dev

ListView onItemClickListener获取数据

来自分类Dev

挣扎于listview-onitemclicklistener

来自分类Dev

如何在ArrayList中添加ArrayList

来自分类Dev

适配器ListView中的onTouchListener使onItemClickListener不运行

来自分类Dev

使用 OnItemClickListener 从 ListView 和数据库中删除项目

来自分类Dev

如何设置 onitemclicklistener 以从 arraylist 打开 strings.xml 链接

来自分类Dev

具有TextView自动链接的ListView不接收OnItemClickListener

来自分类Dev

如何在ListView中显示文件的arraylist

来自分类Dev

如何在 ListView 项中添加 ListView

来自分类Dev

如何使用OnItemClickListener在listview上打开不同的活动?

来自分类Dev

如何播放列出并执行 listview.OnItemClickListener 的音频?

来自分类Dev

如何使用ListView中的OnItemClickListener移至PagerStrip Slidding选项卡中的下一个片段

Related 相关文章

  1. 1

    ListView OnItemClickListener没有在监听

  2. 2

    如何在ListView中刷新Youtube Player视图onItemClickListener()

  3. 3

    ListView和OnItemClickListener中的按钮

  4. 4

    具有layoutinflater的listview onitemclicklistener

  5. 5

    在Android中更改ListView的Imageview onItemClickListener的图像

  6. 6

    在arraylist中添加listview的所有edittexts数据

  7. 7

    如何将 onItemClickListener 添加到 ListView 行以启动新活动并在 android 中显示该行

  8. 8

    如何从listview onItemClickListener获取imagelink(url)

  9. 9

    如何使用CustomAdapter在ListView上设置OnItemClickListener

  10. 10

    单击时如何使用 onItemClickListener 展开 listView?

  11. 11

    Android中ListView项内的按钮-如何使其成为onItemClickListener的一部分

  12. 12

    Android:如何在OnItemClickListener()中调用getActivity()?

  13. 13

    如何在此代码中实现OnItemClickListener?

  14. 14

    如何在Recyclerview中取消设置OnitemClickListener

  15. 15

    如何在此代码中实现OnItemClickListener?

  16. 16

    Android: OnItemCLickListener not working in listview

  17. 17

    Android Listview OnItemClickListener

  18. 18

    ListView onItemClickListener获取数据

  19. 19

    挣扎于listview-onitemclicklistener

  20. 20

    如何在ArrayList中添加ArrayList

  21. 21

    适配器ListView中的onTouchListener使onItemClickListener不运行

  22. 22

    使用 OnItemClickListener 从 ListView 和数据库中删除项目

  23. 23

    如何设置 onitemclicklistener 以从 arraylist 打开 strings.xml 链接

  24. 24

    具有TextView自动链接的ListView不接收OnItemClickListener

  25. 25

    如何在ListView中显示文件的arraylist

  26. 26

    如何在 ListView 项中添加 ListView

  27. 27

    如何使用OnItemClickListener在listview上打开不同的活动?

  28. 28

    如何播放列出并执行 listview.OnItemClickListener 的音频?

  29. 29

    如何使用ListView中的OnItemClickListener移至PagerStrip Slidding选项卡中的下一个片段

热门标签

归档