スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

OnClickListener

ボタンを配置 の記事では、HelloAndroidアプリにボタンを設置しましたが、このボタンは押しても何の変化もありません。

今回は、このボタンを押すと「ボタンが押されました。」という文字列が表示されるようにしてみましょう。

20110716_1
ボタンを押すと・・・


20110716_2
テキストに「ボタンが押されました」と表示されます。



ボタンを押すなどのユーザーによるアクションは「イベント」と呼ばれ、今回のプログラミングは、イベントに対するリアクションを行うことになります。

まずはレイアウトを定義するmain.xmlですが、ほとんど変更はありません。TextViewとButtonがひとつずつありましたね。

ただ、イベント処理を行うには、どのビューに対するアクションに対して処理を行うかを特定するために、各部品(オブジェクト)に対してIDを設定する必要があります。

前回はTextViewに対してIDを設定していなかったので textview1 というIDを設定しておきます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/textview1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:layout_gravity="center">
</Button>
</LinearLayout>


ここでIDについて少し書いておくと、IDも文字列などと同様にアプリケーションのリソースの一種です。

だとすると、IDの定義を集めた ids.xml のようなリソースファイルを作った上で、main.xmlでは

android:id="@id/button1"

のように指定すればいいということになります。

しかし、IDに限っては、わざわざリソースファイルを作らなくても、

android:id="@+id/button1"

と「+」をつけて定義することが可能です。


OnClickListenerの使い方


では、HelloAndroid.javaのソースです。

package sample.basic;

import android.app.Activity;
import android.os.Bundle;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.View;
import android.widget.TextView;

public class HelloAndroid extends Activity implements OnClickListener{

private Button button1;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
}

public void onClick(View v){
TextView textview1=(TextView)findViewById(R.id.textview1);
textview1.setText("ボタンが押されました。");
}
}


今回イベント処理で利用するのは、OnClickListenerインタフェースです。インポート・承継します。

処理の途中までは、Hello World と表示するだけのプログラムと同じです。

main.xmlで作ったbutton1をJavaプログラムで使うには、findViewById()メソッドを利用します。Button型やTextView型のキャストをしているのは、このメソッドで返されるのはスーパークラスのView型だからです。

ボタンを押したときにアクションを追加するのが setOnClickListener()メソッドです。引数はOnClickListener型で、HelloAndroidクラスはOnClickListenerインタフェースを継承しているので this による指定が可能です。

具体的なアクションは OnClickListenerインタフェースで定義されている onClick()メソッドで記述します。引数はView型なのでViewクラスのインポートが必要です。

関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

2016-02-28 Sun 23:07:10

このコメントは管理者の承認待ちです

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/17-cd7deffe
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。