2014-06-27 2 views
0

J'ai imagebuttonbutton et je veux écrire la méthode setOnClickListener avec le clic de bascule (comme toggleButton). Je sais comment fonctionne togglebutton mais je n'ai pas besoin de l'utiliser. il est possible d'écrire la méthode toggleclick dans imagebutton. J'ai écrit un code, mais ne fonctionne pas, comme togglebuttonAndroid imagebuttonbouton clic

strada_chart.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      if(arg0.isClickable()==true) 
      { 
       Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show(); 
      } 
      else 
      { 
       Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
+0

bascule? Comme une case à cocher? – Blackbelt

+0

comme toggleButton – user3775061

Répondre

1

Essayez cette ..

Like_btn.setOnClickListener(new OnClickListener() 
     { 

      public void onClick(View v) 
      { 
       if(fun) 
       { 
       Like_btn.setImageResource(R.drawable.unlike); 
       fun=false; 
       } 
       else 
       { 
        fun=true;  
        Like_btn.setImageResource(R.drawable.like); 
        Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 
+0

et dans votre code amusant est un type booléen et la première fois fun = false? – user3775061

+0

oui .. il sera aussi statique – Giridharan

0
public void onToggleClicked(View view) { 
     // Is the toggle on? 
     switch (view.getId()) { 
     case R.id.xyz: 
      boolean on = ((ToggleButton) view).isChecked(); 

      if (on) { 


       Toast.makeText(mContext, "A", Toast.LENGTH_SHORT).show(); 
      } else { 


       Toast.makeText(mContext, "B", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 

propriété Utilisation du bouton à bascule

En XML:

<ToggleButton 
      android:id="@+id/xyz" 
      style="@style/toggleButton" 
      android:layout_width="190dp" 
      android:layout_height="50dp" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_margin="8dp" 
      android:background="@drawable/ic_toggle_sv" 
      android:onClick="onToggleClicked" /> 

Dans ic_toggle_sv

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+android:id/background" 
     android:drawable="@android:color/transparent"/> 
    <item 
     android:id="@+android:id/toggle" 
     android:drawable="@drawable/ic_toggle1"/> 

</layer-list> 

En ic_toggle1 passer les deux images de bouton à bascule

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/ic_toggle_stills" android:state_checked="false"/> 
    <item android:drawable="@drawable/ic_toggle_videos" android:state_checked="true"/> 

</selector> 
0

Essayez cette ....

private static boolean isClicked = true; 
strada_chart.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View arg0) { 
     if(isClicked) 
     { 
      Toast.makeText(getApplicationContext(), "1", Toast.LENGTH_SHORT).show(); 
      isClicked = false; 
     } 
     else 
     { 
      Toast.makeText(getApplicationContext(), "2", Toast.LENGTH_SHORT).show(); 
     } 

    } 
});