91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android tableview怎樣處理點擊事件

小樊
84
2024-07-20 15:01:51
欄目: 編程語言

在Android中,可以使用ListView或RecyclerView來實現類似于iOS的TableView。在這兩種控件中都可以處理點擊事件。下面分別介紹如何處理點擊事件:

  1. 使用ListView處理點擊事件:
ListView listView = findViewById(R.id.listView);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        // 在這里處理點擊事件,position為點擊的位置
    }
});
  1. 使用RecyclerView處理點擊事件:
RecyclerView recyclerView = findViewById(R.id.recyclerView);

recyclerView.addOnItemTouchListener(new RecyclerViewTouchListener(context, recyclerView, new RecyclerViewTouchListener.OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
        // 在這里處理點擊事件,position為點擊的位置
    }
}));

需要注意的是,在RecyclerView中需要自定義一個RecyclerViewTouchListener類來實現點擊事件的處理,代碼如下:

public class RecyclerViewTouchListener implements RecyclerView.OnItemTouchListener {

    public interface OnItemClickListener {
        void onItemClick(View view, int position);
    }

    private OnItemClickListener mListener;
    private GestureDetector mGestureDetector;

    public RecyclerViewTouchListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
        mListener = listener;
        mGestureDetector = 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 && mListener != null) {
                    mListener.onItemClick(child, recyclerView.getChildAdapterPosition(child));
                }
            }
        });
    }

    @Override
    public boolean onInterceptTouchEvent(@NonNull RecyclerView rv, @NonNull MotionEvent e) {
        View child = rv.findChildViewUnder(e.getX(), e.getY());
        if (child != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
            mListener.onItemClick(child, rv.getChildAdapterPosition(child));
            return true;
        }
        return false;
    }

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

    @Override
    public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
    }
}

以上是兩種不同控件處理點擊事件的方法,根據項目需求選擇合適的控件來實現TableView的功能。

0
青河县| 吉林市| 正阳县| 昌邑市| 阳朔县| 台北县| 尼玛县| 宜川县| 肃北| 游戏| 米泉市| 九寨沟县| 南充市| 慈溪市| 文水县| 卓尼县| 遂宁市| 张北县| 西峡县| 皮山县| 黑龙江省| 迁西县| 高淳县| 金川县| 广南县| 白银市| 平凉市| 易门县| 江都市| 怀柔区| 波密县| 中山市| 德兴市| 额敏县| 江源县| 马公市| 抚州市| 敦煌市| 盐城市| 渭南市| 科尔|