Home > Software design >  Unexpected Token And Cannot resolve constructor
Unexpected Token And Cannot resolve constructor

Time:07-31

I was creating Ontouchlistener But i got 2 error. 1st unexpected token and 2nd Cannot resolve constructor 'Intent(anonymous android.view.View.OnTouchListener, java.lang.Class<com.krish.galaxypdfviewer.Website>)'

And when i tried onclick listener it worked without any error but i want to use Ontouchlistener

Here is the code whats wrong here?

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        FloatingActionButton actionButton = findViewById(R.id.action_button);

        defineView();
        handleIntent();
        defineActionBar();
        checkPermission();

      

        long start;
        actionButton.setOnTouchListener(new View.OnTouchListener(){
            @Override
            public boolean onTouch(final View v, final MotionEvent event){
                switch(event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        start=System.currentTimeMillis();
                        return true;
                    case MotionEvent.ACTION_UP:
                        if(System.currentTimeMillis()-start<500){ //Click is less than 500ms, you can adjust this value later...
                             //Do what you want on click over here...
                        }else{
                            openWebsite(); //It's a long click, do what you want over here...
                        }
                        return true;
                    default:
                        return false;
                }
            });


    public void openWebsite() {
        Intent intent = new Intent(this, Website.class);
        startActivity(intent);
    }

CodePudding user response:

There's a missing closing curly brace for the onTouch method.

        actionButton.setOnTouchListener(new View.OnTouchListener(){
            @Override
            public boolean onTouch(final View v, final MotionEvent event){
                switch(event.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        start=System.currentTimeMillis();
                        return true;
                    case MotionEvent.ACTION_UP:
                        if(System.currentTimeMillis()-start<500){ //Click is less than 500ms, you can adjust this value later...
                             //Do what you want on click over here...
                        }else{
                            openWebsite(); //It's a long click, do what you want over here...
                        }
                        return true;
                    default:
                        return false;
                }
            } // this one closes onTouch
        });

CodePudding user response:

There are two left-braces "{" which do not have a matching closing brace "}".

You're missing a closing brace for this line:

protected void onCreate(Bundle savedInstanceState) {

As well as this line:

actionButton.setOnTouchListener(new View.OnTouchListener() {

So, adding two closing braces at the end, just after "});" – }} – will balance the braces. I'm not sure beyond that if the code actually does what you want, but that should at least address the compiler errors related to braces.

  • Related