按下android按钮状态 [英] Pressed android button state

查看:28
本文介绍了按下android按钮状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在关注一个教程,该教程解释了如何为具有不同状态的按钮使用背景,但它似乎不起作用:S

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

这是我的代码:

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

这是我放在 drawable 文件夹中的 xml 代码,这是使用这些按钮的活动的 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类:

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


            }
        }); ....

按钮显示良好,但当我按下它时它不显示按下的图像:我不明白我做错了什么!

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

但是现在我的按钮背景变成了按下的图像而我没有按下它:p并且它没有改变

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

推荐答案

Button 是您在 Activity 中唯一显示的内容吗?如果是这样,那么它会在窗口加载时获得焦点(触发 selector 中的第三项),并且您将无法离开它.如果您只想在按下时更改,请删除第三行.在此期间,请删除第一行,因为当窗口未聚焦时,永远不会按下按钮.

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.

事实上,我建议使用这个代码:

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>

这篇关于按下android按钮状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆