猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Android

クリックリスナーが使えない

投稿日:2013年3月17日 更新日:

急に
型 View のメソッド setOnClickListener(View.OnClickListener)
は引数 (MainActivity.btnClickListener) に適用できません
なるエラーが出ました。

そういう場合は

		Button btnStart = (Button)findViewById(R.id.buttonStart);
		btnStart.setOnClickListener(new btnClickListener());
		↓
		btnStart.setOnClickListener((android.view.View.OnClickListener) new btnClickListener());

とすればOKです。
確認していませんが、
listviewをか何かをインポートして、onClickListernerの名前が重複してしまったんでしょうか。

本当の原因

下記のようなエラーがでます。

Uncaught handler: thread main exiting due to uncaught exception
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ips/com.ips.nekotype.TESTActivity}: java.lang.ClassCastException: com.ips.nekotype.TESTActivity$ClickListenerStart

Eclipseでインポートしたパッケージが間違えていました。

import android.content.DialogInterface.OnClickListener; ×
 ↓
import android.view.View.OnClickListener; ○

	class ClickListenerStart implements OnClickListener{
		@Override 
		public void onClick(DialogInterface dialog, int which) { ×
              ↓
		@Override
		public void onClick(View v) { ○
			// TODO 自動生成されたメソッド・スタブ
		}

何事も原因究明が大切でした・・・反省です。

Gooleアドセンス用336

Gooleアドセンス用336

-Android
-

執筆者:

関連記事

アクティビティ間の画面遷移

アクティビティから別のアクティビティを呼びだすと、新しいアクティビティは上に重ねられた状態になり、今まで使用していたアクティビティは停止します。 そして新しいアクティビティが終了すると、元のアクティビ …

別スレッドから画面を制御するhandlerの使い方

別スレッドから画面(layout)を制御するにはhandlerを使用します。 制御したい画面を持つアクティビティに、handerの宣言をします。 宣言したhandlerはsendMessageメソッド …

layoutのxmlに配置したボタンにクリックイベントを追加する

ボタンなどのビューは、コードで記述することもできますが、 やはりres/layout/xxx.xmlで作成するのが一般的です。 xmlで作成したビューに、はアクティビティのonCreateでリスナーを …

SQLiteにPupSQLiteでアクセスする

PupSQLiteは任意の場所からダウンロードしてください。 PupSQLiteでなくてもエミュレーターからもデータベースファイルを抜き出すことができるので、それを利用して確認等が行えます。 まずはE …

インストールしているアプリを調べる

タイトルの通り、androidにインストールするアプリを調べてListViewに表示するサンプルです。 何かの役に立つかもしれません。 本当はSpeechSynthesis Dataがインストールされ …