Skip to content

Instantly share code, notes, and snippets.

@otiai10
Last active August 29, 2015 14:13
Show Gist options
  • Save otiai10/a7824b7b7d8e1068e82b to your computer and use it in GitHub Desktop.
Save otiai10/a7824b7b7d8e1068e82b to your computer and use it in GitHub Desktop.
android the first step
落合 展
以前マルフォイにレクチャーしてもらった内容、メモってなくて泣いております。ひとつだけ質問させていただいてもよいですか、もし起きてたら
石丸 翔也
0:22
石丸 翔也
はい!大丈夫です!
落合 展
0:22
落合 展
配置したオブジェクトにイベントリスナーを登録したいときって、どうすればいいんでしたっけ。たとえばボタンを置いて、そのクリックイベントで、コンソールログ出す、的な
石丸 翔也
0:31
石丸 翔也
まず、xml+javaで実現する方法とjavaのみで実現する方法がありますね。
xml+javaの場合は
<Button android:onClick="hoge" />
を書いておき、
javaの方で
public void hoge(View v){...}
とします。
次にjavaのみで実現する場合ですが、これまた2つ方法があり、
落合 展
0:33
落合 展
hogeメソッドは、xmlが属してるActivityクラスに書けば紐づくです?
石丸 翔也
0:35
石丸 翔也
はい。ですが記述が分かれるので個人的には好きじゃない方法です。
落合 展
0:35
落合 展
まじすか。おkです。続く二つを正座して待ちます。
石丸 翔也
0:36
石丸 翔也
1. イベントリスナーのインスタンスを生成する方法
(setOnClickListener()の中で無名クラスとして定義する)
Button button = (Button)findViewById(R.id.buttonID);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
落合 展
0:37
落合 展
findViewByIdが document.getElementById みたいなもんすね!なるほど
石丸 翔也
0:39
石丸 翔也
2. イベントリスナーを継承する方法
public class hogeActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
Button button = (Button)findViewById(R.id.buttonID);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// 複数ボタンがある場合はviewのidで処理switch
}
}
落合 展
0:40
落合 展
2-2を教えてもらった覚えがあります!
石丸 翔也
2015/01/9 0:41
石丸 翔也
ですです!Viewの配置とボタンを押されたときの処理が分かれるので僕はよく2-2を使います。
落合 展
0:41
落合 展
Rってのはなんでしたっけ
石丸 翔也
0:43
石丸 翔也
resourceのRで、R.id.~でこのプロジェクトの持ってるlayoutとかstringとかimageとかbuttonIDとかを取りにいけます。
落合 展
0:44
落合 展
なるほど。全てを理解した(←
ありがとうございます!
石丸 翔也
AndroidのOnClickListener作法いろいろなので議論にもなってますね
http://qiita.com/t2low/items/8ac683c7ebf4b6dd1b41
落合 展
0:45
落合 展
このベストプラクティスが定まらない感じがアンヨヨイヨなんですね!楽しみです!
今度は焼肉おごらせてください、ベルリンで
石丸 翔也
2015/01/9 0:46
石丸 翔也
Androidらしいですね〜
ベルリンで!ぜひ!ダンケ!
@otiai10
Copy link
Author

otiai10 commented Jan 8, 2015

僕の書き方的には

  1. プロジェクトに途中から入るときは既存のコードの作法に合わせる
  2. 個人開発だと2-2(SensorManagerのEventListenerの書き方に近くて親しみがあるから)
    です!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment