« 順調なすべりだし? | トップページ | アプリ第2弾開発中 »

2011年2月15日 (火)

android:onClick

EvernoteのAPIキーが送られてきました

どうやら、日本で受け付けて、米国に回送して届けられるようです。中1日でやってきたのでアメリカとの時差を考えれば即日発行されたと思っていいでしょう。

早速、ログインだけでも試すかと思って、sandboxへidを作って、サンプルをコピーしたのですが、そのHelloAndroidというサンプルは意図したものとはちょっと違っていました。
HelloAndroidはIntentを発行してEvernoteクライアントに処理してもらうサンプルで、APIキーは使いません。でも、せっかく開いたのだから、中を見てみました。それが、そのプログラム、動かすとボタンが何個かあって、それを押すとEvernoteクライアントが動くのですが、中身が何か変なのです。つまり、onCreateのほかは各種Intentを発行するメソッドの処理が延々書いてあるだけで、Buttonを実体化させたり、リスナーを登録したりといった処理がまったく無いのです。

ここで、タイトルのものが登場します。つまり、layoutのxmlのButtonの属性としてandroid:onClickというのが指定されていて、そこにクリック時のメソッド名が書いてあるのです。
えー、そんなの聞いてないよ、と思ったのですが、これ以外のタネや仕掛けは見つけられなかったので、私もやってみました。

こんな感じです、これは、前回ちょっと書いたアプリの一覧のほか、センサーの一覧を表示するプログラムを1つのパッケージにまとめたものです。pbとsbのボタンがありますが、sbのほうはSetOnClickListenerがコメントになっています。その代わり、onClickと同等の処理をsensorとして作っています。そして、sbのlayoutを定義したxmlにandroid:onClick=sensorと書けば、ボタンを作ったりしなくても動くということです。Xperiaで試しましたが、ちゃんと動きました。

public class main extends Activity {
      private Button pb ;
      private Button sb ;
      private Context mContext ;
      
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mContext = getApplicationContext();
      
        pb = (Button) findViewById(R.id.perm_button);
        pb.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                Intent intent = new Intent(mContext,permissionlist.class);
                startActivity(intent);
            }
        });
//      sb = (Button) findViewById(R.id.sensor_button);
//      sb.setOnClickListener(new OnClickListener(){
//        public void onClick(View v) {
//            Intent intent = new Intent(mContext,sensors.class);
//            startActivity(intent);
//        }
//      });
    }
    public void sensor(View v) {
          Intent intent = new Intent(mContext,sensors.class);
          startActivity(intent);
    }
}

« 順調なすべりだし? | トップページ | アプリ第2弾開発中 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60027/50881903

この記事へのトラックバック一覧です: android:onClick:

« 順調なすべりだし? | トップページ | アプリ第2弾開発中 »