setTag & getTag

Posted by muchag | Android |
初回投稿:2011-04-10 (日) 21:15:17 | 最終更新:2011-04-10 (日) 21:19:49

Button の onClick イベントでは、Button ビューそのものしか渡せないため
その次の処理に必要な引数を渡すことができない。

そこで Flex のときに用いた data プロパティ のようなものがないか
リファレンスをジロジロ見てみた。

あったあった♪ setTag & getTag

リファレンスの英語は今一理解できなかったけど

Tags can also be used to store data within a view ・・・

この部分でピンときてグーグル先生に聞いてみたら、
やっぱり期待した機能のようだった。

void | setTag (Object tag)

とのことなので、まずはオブジェクト作り。

MyObject.java
  1. package com.example.sample;
  2.  
  3. public class MyObject {
  4.    
  5.     public int myInt;
  6. }

 
次にボタンを配置したアクティビティクラスにて

  1. //フィールドにて宣言
  2. private Button myButton;
  3.  
  4. /* 省略 */
  5.  
  6. //情報格納インスタンスを生成
  7. MyObject myObject = new MyObject();
  8. myObject.myInt = 24; //値を格納
  9.  
  10. //ボタンインスタンスの生成
  11. myButton = new Button(this);
  12. //インスタンスの Tag へ情報を格納
  13. myButton.setTag(myObject);
  14. //ボタンインスタンスへリスナーを登録
  15. myButton.setOnClickListener(this);
  16.  
  17. /* 省略 */
  18.  
  19. //ボタンクリックイベントの処理
  20. public void onClick(View view) {
  21.     if (view == myButton) {
  22.             //Button に埋め込んだ情報オブジェクトを取得
  23.             MyObject myObject = (MyObject) myButton.getTag();
  24.             //情報オブジェクトから当該情報を取得
  25.             int myInt = myObject.myInt;
  26.     }
  27. }

見事に情報の受け渡しに成功!

この setTag & getTag メソッドは、Button クラス固有のものではなく
View クラスのものなので、そのサブクラスではどれでも利用可ってことよね?

めでたしめでたし。

Posted by muchag | Android |
初回投稿:2011-04-10 (日) 21:15:17 | 最終更新:2011-04-10 (日) 21:19:49

4 Comments »

  1. Comment by Demi — 2019/7/2 火曜日 @ 13:50:22

    Every weekend i used to go to see this website, for the reason that i wish for enjoyment, as this this website conations truly good funny
    information too.

  2. Comment by https://www.xtyle.kr/ — 2019/7/4 木曜日 @ 22:56:10

    Wonderful post however I was wondering if you could write a litte more on this topic?

    I’d be very grateful if you could elaborate a little bit more.
    Appreciate it!

  3. Comment by Brandy — 2019/7/6 土曜日 @ 3:35:41

    Hi there, its good post about media print, we all know media is
    a impressive source of data.

  4. Comment by Kristy — 2019/8/10 土曜日 @ 11:14:41

    With havin so much content do you ever run into any problems of plagorism or copyright
    violation? My website has a lot of unique content I’ve either authored myself or outsourced but it looks like a lot of it is
    popping it up all over the internet without my permission. Do you know
    any solutions to help protect against content from being stolen? I’d truly appreciate
    it.

RSS feed for comments on this post. TrackBack URI

Leave a comment