2

ブール値 (true と false) を画像に渡す方法があるかどうか疑問に思っています。
ここでやろうとしているのは、画像を一種のswitch. 画像を押すと真の値が返され、もう一度押すと値が返されます。

画像がToggleButtonまたはとして機能するようCheckboxに、ユーザーがクリックすると true が返され、再度クリックされると値が false になります。値が true の場合、イメージはサービス プロジェクトを開始し、ユーザーがイメージを再度クリックするとサービスを停止します。

4

5 に答える 5

4

すべてのビューには「setTag()」メソッドがあります。以下の方法でご利用いただけます。

//say 1 is for true
view.setTag(1);

//say 0 is for false
view.setTag(0);

値を取得するには、

int flag = (Integer) view.getTag();
if(flag==1)
//true condition
else
//false condition

編集

タグに ID を設定した場合、その ID を取得するコードは次のようになります。

view.setTag(view.getId());
//...
int id = (Integer) view.getTag();

コード

scanButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        int flag = (Integer)view.getTag();
        if(flag==1){
            //change to 0 here
            view.setTag(0);
            //rest of code
        }else
        {
            //change to 1 here
            view.setTag(1);
            //rest of code
        }
}
于 2013-07-02T05:37:47.893 に答える
0
   public static int Count=0;
 Myimageview.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        if(Count==0)
            {
             //Toggle On
             //Start Service;
           Count=1;
             }
          else
            {
            //Toggle Off
            //Stop Service
             Count=0;
            }
    }
});
于 2013-07-02T05:36:58.663 に答える
0

もう 1 つのオプションは、ImageView クラスを拡張して、その中に独自の属性を持ち、OnClickListener で必要な属性にアクセスすることです。

imageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // cast to the custom class
            CustomImageView customImageView=(CustomgImageView)v;
            //access the attributes and perform the required action. 

        }
    });
于 2013-07-02T06:11:39.143 に答える
0

あなたは使用することができますflag

このようなもの

boolean flag = false;

内部onClickメソッド

flag = !flag;

が開始されているかどうかを確認し、それ以外の場合flagtrueを開始しserviceます。stopservice

于 2013-07-02T05:37:49.057 に答える
0

最もクリーンな方法は、新しいクラスを作成することです。ImageView から派生させ、onTouchEvent で TOUCH_UP モーション イベントを受け取るたびにトグルされるフラグを使用します。次に、そのフラグの値に基づいて、必要な他の動作をオーバーライドできます。

于 2013-07-02T06:05:56.067 に答える