Android按钮onTouch方法工作但不是onClick

时间:2014-03-04 11:32:54

标签: android onclicklistener

以下是我的按钮的代码摘录。

login = (Button) findViewById(R.id.login_btn_splash);
login.setTypeface(english);     
login.setOnClickListener(new SplashLoginListener());
login.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            Log.d("touch", "touch");
            return false;
        }
});

以下是SplashLoginListener内部类的代码。

private class SplashLoginListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        Log.d("login", "login clicked");
        String uname = username.getText().toString().trim();
        String pword = Utils.Encryption.hashPassword(password.getText()
                .toString().trim());            
        UserLoginTask task = new UserLoginTask();
        task.execute(uname, pword);
    }

}

调用onTouch方法。 onClick没有。什么可能是错的?

1 个答案:

答案 0 :(得分:2)

创建您的Listener,如下所示......

private OnClickListener splashLoginListener = new View.OnClickListener {

    @Override
    public void onClick(View v) {
        Log.d("login", "login clicked");
        String uname = username.getText().toString().trim();
        String pword = Utils.Encryption.hashPassword(password.getText()
                .toString().trim());            
        UserLoginTask task = new UserLoginTask();
        task.execute(uname, pword);
    }

}

然后按如下方式调用Listener ...

    login.setOnClickListener(splashLoginListener);