java android处理程序调用

时间:2013-01-09 17:02:37

标签: java android

我是android编程的新手。我看到很多方法来处理事件,但是当我尝试通过调用处理程序类来实现它时,它会在处理类名时出错:

package com.example.test;

import android.app.Activity;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //attach an instance of HandleClick to the Button
        findViewById(R.id.button1).setOnClickListener(new HandleClick());
    }    

    private class HandleClick implements OnClickListener{
        public void onClick(View arg0) {
            Button btn = (Button)arg0;  //cast view to a button
            // get a reference to the TextView
            TextView tv = (TextView) findViewById(R.id.textview1);
            // update the TextView text
            tv.setText("You pressed " + btn.getText());
        }
    }
}

"HandleClick"错误来了,它说类应该是抽象类型?

我不明白为什么它会给这个错误任何人帮助我?

3 个答案:

答案 0 :(得分:2)

这是错误的OnClickListener类。

 import android.content.DialogInterface.OnClickListener;

你需要:

 import android.view.View.OnClickListener;

为了将来参考,您得到的错误是“类型必须实现继承的抽象方法......”。这是因为你需要实现DialogInterface的onClick,这应该会让你注意到它是错误的导入(因为你有onClick(View)

答案 1 :(得分:0)

简单易懂用这个,

b1 = (Button) findViewById(R.id.button1);
TextView tv = (TextView) findViewById(R.id.textview1);
b1.setOnClickListener(new OnClickListener()
{
    public void onClick(View v)
    {
        Toast msg = Toast.makeText(getBaseContext(),
        "You have clicked Button 1", Toast.LENGTH_LONG);
        msg.show();
        tv.setText("You pressed " + btn.getText());
    }
});

答案 2 :(得分:0)

您导入了错误的OnClickListener,您应该从android.view.View

导入一个