-1

私はアンドロイドプログラミングの初心者です。イベント処理を行う方法はたくさんありますが、ハンドラー クラスを呼び出して実行しようとすると、クラス名の処理でエラーが発生します。

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"エラーが発生すると、クラスは抽象型である必要がありますか?

このエラーが発生する理由がわかりません。誰か助けてください。

4

3 に答える 3

2

それは間違った OnClickListener クラスです。あなたが持っている

 import android.content.DialogInterface.OnClickListener;

必要なもの:

 import android.view.View.OnClickListener;

今後の参考のために、「型は継承された抽象メソッドを実装する必要があります...」というエラーが表示されます。これは、DialogInterface の onClick を実装する必要があるためですonClick(View)

于 2013-01-09T17:06:39.270 に答える
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());
    }
});
于 2013-01-09T17:07:07.563 に答える
0

間違った OnClickListener をインポートした場合は、android.view.View からインポートする必要があります

于 2013-01-09T17:08:54.493 に答える