Jones Ch
Jones Ch

Reputation: 65

Error implementing methods into button listener

I try to implement the method into my Button's onClickListener and i got an Syntax Error.

Below is my code:

// button click event
btnCreateNewEvent.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {
// Checking for server respond
if (serverRespond() == false) {
           //DO SOMETHING
}

Below is my ServerRespond outside the onCreate method

// Check server respond    
public boolean serverRespond() {
boolean success = false;
    try {
        URL url = new URL(url_create_event);
        HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
        urlcon.connect();
        if (urlcon.getResponseCode() == 200) {
            success = true;
        }
    } catch (Exception e) {
        Log.e(create_error.toString(), "Server is not responding");
    }
    return success;
}

ERROR: at if(serverRespond()==true){

"The method serverRespond() is undefined for the type new View.OnClickListener(){}"

Upvotes: 0

Views: 147

Answers (3)

Michel-F. Portzert
Michel-F. Portzert

Reputation: 1785

You can access by doing:

YourActivity.this.serverRespond()

Upvotes: 3

Hardik Joshi
Hardik Joshi

Reputation: 9507

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button btn = (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (serverRespond() == false) {
                Toast.makeText(getApplicationContext(), "onClick",
                        Toast.LENGTH_LONG).show();
            }

        }
    });

}



public boolean serverRespond() {
    Toast.makeText(getApplicationContext(), "serverRespond",
            Toast.LENGTH_LONG).show();
    return false;
}

Upvotes: 1

jeet
jeet

Reputation: 29199

I think you are calling serverRespond() method in following way:

this.serverRespond();

and as this method is in class implementing OnClickListener, it will search this method in this class or OnClickListener. Either change it to:

serverRespond();

or

YourActivity.this.serverRespond()

as per answer of Michel-F. Portzert.

Upvotes: 1

Related Questions