开发者

Error with on click view

开发者 https://www.devze.com 2023-03-10 23:23 出处:网络
In my app i need to show dialogs for a lot of buttons. Therefore i decided to use 1 onClick for a series of buttons. Only the first line where we implement, there is an error. My code is as follows:

In my app i need to show dialogs for a lot of buttons. Therefore i decided to use 1 onClick for a series of buttons. Only the first line where we implement, there is an error. My code is as follows:

import android.app.Activity;
import android.os.Bundle;
import android.app.AlertDialog;
import android.view.View;
public class Trial extends Activity implements View.OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        View b1 = findViewById(R.id.button1);
        b1.setOnClickListener(this);  
        View b2 = findViewById(R.id.button2);
        b1.setOnClickListener(this);  
    }
    View.OnClickListener yourListener = new View.OnClickListener() {
        public void onClick(View v) {
            if (v == button1) {
                new AlertDialog.Builder(v.getContext())
                        .setTitle("Paracettamol")
                        .setMessage(
                                "This medicine is generally used to cure Fever")
                        .setNeutralButton("OK", null).show();
            } else if (v == button2) {
                new AlertDialog.Builder(v.getContext())
                        .setTitle("sertraline")
                        .setMessage(
                                "This medicine is generally used to cure Head aches")
                        .setNeutralButton("O开发者_如何学PythonK", null).show();
            }


        }
    }

The fifth line(public class Trial extends Activity implements View.OnClickListener ) gives an error as follows:The type trial must implement the inherited abstract method View.OnClickListener.onClick(View). can anyone please help me.


You need to have the following in your class:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}}


You have 2 options:

  • have your activity implement View.OnClickListener, that means moving public void onClick(View v) in the activity

  • remove implements View.OnClickListener and call b1.setOnClickListener(yourListener);


You've got two onClickListeners. When you say:
class Trial extends Activity implements onClickListener,
You're declaring that the class Trial must itself respond to clicks. You therefore need to implement the onClick() method as in Jon's answer.

However, you've also made an internal onClickListener, called yourListener. If you want to use this one, you need to point your buttons to it instead of this, which refers to the parent class. E.g:
b1.setOnClickListener(yourListener);

0

精彩评论

暂无评论...
验证码 换一张
取 消