Zustand der gedrückten Android-Taste

Ich habe ein Tutorial verfolgt, in dem erklärt wird, wie man den Hintergrund für eine Schaltfläche mit unterschiedlichen Zuständen verwendet, aber es scheint nicht zu funktionieren: S

Hier ist mein Code:

    <?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>

Dies ist ein XML-Code, den ich in meinem Zeichenordner abgelegt habe. Hier ist ein Teil der XML-Datei der Aktivität, die diese Schaltflächen verwendet:

    <?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" /> 
    ...

Und hier ist die Java-Klasse:

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);


            }
        }); ....

Die Schaltfläche wird gut angezeigt, aber wenn ich sie drücke, wird das gedrückte Bild nicht angezeigt: s Ich verstehe nicht, was ich falsch mache!

Hat jemand irgendwo einen Fehler gesehen ???

Wo soll ich diese Zeilen setzen? Ich habe sie in meinem Button xml abgelegt

    <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" />

Aber jetzt hat sich mein Schaltflächenhintergrund in das gedrückte Bild geändert, ohne dass ich darauf drücke: p und es ändert sich nicht

 ρяσѕρєя K04. Apr. 2012, 23:26
versuchen Sie es nach dem Einstellen der Tasteandroid:focusable="true" undandroid:focusableInTouchMode=true
 haris14. Dez. 2013, 10:45

Antworten auf die Frage(1)

Lösung für das Problem

Button das einzige was du in deinem angezeigt hastActivity? Wenn dies der Fall ist, wird es fokussiert (und der dritte Gegenstand in Ihrem Fokus wird ausgelöst)selector), wenn das Fenster geladen wird und Sie nicht mehr davon weg navigieren können. Wenn Sie nur durch Drücken von ändern möchten, löschen Sie diese dritte Zeile. Löschen Sie währenddessen die erste Zeile, da die Schaltfläche niemals gedrückt wird, wenn das Fenster nicht fokussiert ist.

Tatsächlich schlage ich diesen Code vor:

<?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>
 wutzebaer07. Jan. 2016, 13:27
Wie kann ich die Animationsgeschwindigkeit beim Drücken von ändern?

Ihre Antwort auf die Frage