2012-04-04 24 views
6

Ben ettik farklı devletlerle bir düğme için bir arka plan kullanmak ama işe görünmüyor nasıl açıklayan bir öğretici izliyor:Preslenmiş android düğme durumu

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/boutonn" android:state_window_focused="false"/> 
    <item android:drawable="@drawable/boutonnpousse" android:state_pressed="true"/> 
    <item android:drawable="@drawable/boutonnpousse" android:state_focused="true"/> 
    <item android:drawable="@drawable/boutonn" android:state_focused="false" 
    android:state_pressed="false" /> 

</selector> 
: S

İşte

benim kodudur

Bu burada, benim çekilebilir klasörüne yerleştirilir ettik bir xml kodu olan bu düğmeleri kullanan aktivitenin xml bir parçasıdır: java sınıfı burada

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/backgrounddd" 
    android:orientation="vertical" > 

      <Button 
       android:id="@+id/bNoteRemind" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_gravity="center" 
       android:background="@drawable/imagebutton1" /> 
    ... 

Ve edilir:

public class MenuPrincipal extends Activity { 

    Button NoteRemind;   

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     //on lui associe le layout menuprincipal.xml 
     setContentView(R.layout.menuprincipal); 

     NoteRemind = (Button) findViewById(R.id.bNoteRemind);  

     // Si on choisit de rédiger une nouvelle task on va être rediriger sur l'activité NoteReminder 

     NoteRemind.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       //On créé l'Intent qui va nous permettre d'afficher l'autre Activity 
       //Mettez le nom de l'Activity dans la quelle vous êtes actuellement pour le premier parametre 
       v.setPressed(true); 

       Intent intent = new Intent(MenuPrincipal.this, NoteReminder.class); 
       //Intent intent = new Intent(MenuPrincipal.this, Teste2.class); 
       //On démarre l'autre Activity 
       startActivity(intent); 


      } 
     }); .... 

Düğme iyi görüntüleniyor, ancak bastığımda basılan görüntüyü göstermiyor: Ne yaptığımı anlamıyorum!

Herhangi bir yerde bir hata görüyor musunuz ???


Bu satırları nereye koymalıyım? Benim düğmesi xml koydu ettik

<Button 
     android:id="@+id/bNoteRemind" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_gravity="center" 
     android:background="@drawable/imagebutton1" 
     android:focusable="true" 
     android:focusableInTouchMode="true" /> 

Ama şimdi benim düğmesi arka plan bana basmadan preslenmiş görüntüye değiştirildi: p ve

+2

deneyin düğmesini ayarladıktan sonra 'android:

Aslında, bu kodu önermek odaklanabilir' = "true" 've android: focusableInTouchMode = TRUE –

+0

[http://stackoverflow.com/questions ] [1] bu başvurun/11978880 /-of-the-durumlu-düğmesinin nasıl yapılır-değişim-renk lütfen [1]: http://stackoverflow.com/ sorular/1 1978880/nasıl değiştirilirse renk değiştirme düğmesi – haris

cevap

18

görüntülenmesini tek şey Button mi değişmez senin Activity içinde? Eğer öyleyse, pencere yüklendiğinde (selector'unuzdaki üçüncü öğeyi tetikleyerek) odaklanılacak ve sizden uzaklaşmayacaksınız. Sadece basıldığında değiştirmek istiyorsanız, o üçüncü satırı silin. Bu sırada, pencerenin odaklanmadığı zaman düğmeye hiçbir zaman basılmayacağı için ilk satırı silin.

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/boutonnpousse" android:state_pressed="true"/> 
    <item android:drawable="@drawable/boutonn"/> 
</selector> 
+0

Basarken animasyon hızını nasıl değiştirebilirim? – wutzebaer