猫型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
-

執筆者:

関連記事

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

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

layoutのxmlに配置したListViewをアクティビティで操作する

ListViewの操作にはadapterを使用します。 INDEX1 xml2 アクティビティ3 単純な呼び出し4 結果を受信する呼び出し xml ListViewにアクセスできるようにidを付けてお …

エミュレーターのショートカット

エミュレーターによっては、メニューボタンがありません・・・ ショートカットを使用してメニューを表示させましょう :x002: メニューを表示させるにはF2ボタンでOK! マニュアルのリンク Emula …

SQLiteにadbでアクセスする

コマンドプロンプトでadbのあるディレクトリまでcdで移動します。 私の場合はD:\Users\xxx\android-sdks\platform-tools にしてあります。 # d: # cd D …

SQLiteにPupSQLiteでアクセスする

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