2012年05月31日

様々なクリックイベント処理


前回はイベント処理について書きました
ウィジェットのイベント処理
また前回と同様のイベント処理を様々な記述方法によって実行してみたいと思います

無名クラスを使う
前回のイベント処理の簡略化のためjavaの無名クラスを使って実装する方法があります
Javaではクラスに名前を付けずに利用することができます
その方法で宣言された内部クラスは名前を持たないので無名クラスです
匿名クラス無名内部クラスなんて言い方もします
プログラムの簡略化はできますが・・・明示的なextendsやimplementsを持つこともできません
これを継承するクラスを作成できません
こういったいくつかの制限がありますがソースを簡略化し見やすくするメリットもあります
簡単な動作なら無名クラスを使うのも選択肢の一つです
MainActivity.java
package blog.test;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

 


public class MainActivity extends Activity {
	
	
	//RadioGroup group;

	@Override
	public void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
		
		//テキストビュー作成
        TextView tv = new TextView(this);
        tv.setText("イベント発生前");
        setContentView(tv);
        //無名クラスを利用
       tv.setOnClickListener(new View.OnClickListener() {
               public void onClick(View v) {
                   ((TextView)v).setText("クリックイベントが発生しました。");
               }
           });
       }
}
実行結果は前回と同様でクリックするとテキストビューの文字が変更する仕様です


アクティビティにimplements
アクティビティクラスにイベントリスナ-をインプリメントすることで
自分自身のクラスにOnClickListenerインタフェースを実装することもできます
この時setOnClickListenerの引数にはOnClickListenerインターフェースを実装したクラスのオブジェクトを指定しますが
自分自身のクラスで実装していますので“this”を指定します
MainActivity.java
package blog.test;

 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
 
public class MainActivity extends Activity implements View.OnClickListener {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         
        TextView tv = new TextView(this);
        tv.setText("イベント発生前");
        setContentView(tv);
         
        tv.setOnClickListener(this);
    }
     
    public void onClick(View v) {
        ((TextView)v).setText("クリックイベントが発生しました");
    }
}
最初に Activity implements View.OnClickListenerでActivityに実装しています
実行結果は前回同様なので省きます
スポンサードリンク

posted by kenken at 11:19 | Comment(0) | TrackBack(0) | イベント イベント処理 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。