单击视图时出错

时间:2011-06-06 14:11:07

标签: android

在我的应用程序中,我需要显示许多按钮的对话框。因此我决定使用1 onClick来获得一系列按钮。只有我们实施的第一行,就有一个错误。我的代码如下:

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("OK", null).show();
            }


        }
    }

第五行(公共类Trial extends Activity实现View.OnClickListener)给出如下错误:类型试验必须实现继承的抽象方法View.OnClickListener.onClick(View)。任何人都可以帮助我。

3 个答案:

答案 0 :(得分:4)

您需要在课堂上拥有以下内容:

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

}}

答案 1 :(得分:1)

您有两个选择:

  • 让您的活动实施View.OnClickListener,这意味着在活动中移动public void onClick(View v)

  • 删除implements View.OnClickListener并致电b1.setOnClickListener(yourListener);

答案 2 :(得分:1)

你有两个onClickListeners。 当你说:
class Trial extends Activity implements onClickListener
您宣布课程Trial必须自行回复点击次数。因此,您需要像Jon的回答一样实现onClick()方法。

但是,您还制作了一个名为onClickListener的内部yourListener。如果你想使用这个,你需要将按钮指向它而不是this,它指的是父类。 E.g:
b1.setOnClickListener(yourListener);