如何使用onclick和ontouch监听器来获取android中的不同功能

时间:2016-01-16 18:37:37

标签: android

我正在开发一个Android应用程序,这是一个要求。我需要onclick上的不同功能,以及ontouch的stop和start方法的不同功能。谁能帮我?我如何在android中实现此功能?

1 个答案:

答案 0 :(得分:1)

我理解你的问题,我希望下面的代码可以帮助你。

public class MyFragment extends BaseFragment implements View.OnTouchListener {

    @Override
    public boolean onTouch(final View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                prev_timestamp = System.currentTimeMillis();

            case MotionEvent.ACTION_UP:
                current_timestamp = System.currentTimeMillis();
                upcount++;
                if (current_timestamp - prev_timestamp < 250) {

                    if (upcount == 2) {
                        upcount = 0;
                        Log.d(TAG, "click event");
            //here code for onClick event
                    } else {

                        new AsyncTask<Void, Void, Void>() {

                            @Override
                            protected Void doInBackground(Void... params) {
                                try {
                                    Thread.sleep(500);
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
                                return null;
                            }

                            @Override
                            protected void onPostExecute(Void aVoid) {
                                if (upcount != 0) {
                                    TOUCH_END=false;
                                    Log.d(TAG, "touch start");
                    //here code for onTouchStart event
                                }
                                super.onPostExecute(aVoid);
                            }
                        }.execute();

                    }
                } else {
                    upcount = 0;
                    Log.d(TAG, "touch end");
                    //here code for onTouchEnd event
                }

            case MotionEvent.ACTION_CANCEL:
                //here code for cancel eent if you want

        }
        return true;
    }
}

来源:see example here