pressed安卓按钮状态按钮、状态、pressed

2023-09-12 22:57:52 作者:敢作敢当敢爱敢恨 #

我一直在下面的教程介绍了如何使用背景不同状态的按钮,但它似乎并没有工作:•

I've been following a tutorial that explains how to use background for a button with different states but it doesn't seem to work :S

下面是我的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>

这是一个XML code,我已经摆在我的绘制文件夹,这里是活动的XML中使用这些按钮的一部分:

This is an xml code that I've placed in my drawable folder, here is a part of the xml of the activity that uses these buttons :

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

这里是java类:

And here is the java class :

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


            }
        }); ....

按钮表现不错,但是当我preSS它没有关系T显示了pressed图片:的I不明白我在做什么错

The button displays well but when I press it it doesn t show the pressed image :s I don't understand what I am doing wrong !

有谁看到一个错误的地方???

Does anyone see an error somewhere ???

我应该在哪里把这些线?我已经把它们放在我的按钮XML

Where should I put those lines ? I ve put them in my button xml

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

但现在我的按钮,背景改为pressed图像无我pressing它:对,它并没有改变

But now my button background changed to the pressed image without me pressing it :p and it doesn't change

推荐答案

按钮您已经显示在您的活动?如果是这样的话,那将集中(触发你的选择第三项)当窗口加载,并且您将无法从中导航离开。如果你想改变,只有当pressed,删除第三行。当你在它,删除第一线,作为按钮永远不会当窗口不集中pssed $ P $。

Is the Button the only thing you have displayed in your Activity? If so, then it will be focused (triggering the third item in your selector) when the window loads, and you won't be able to navigate away from it. If you want to change only when pressed, delete that third line. While you're at it, delete the first line, as the button will never be pressed when the window isn't focused.

其实,我认为这code:

In fact, I suggest this code:

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