android - 按下安卓按钮状态

标签 android button background state

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

这是我放在可绘制文件夹中的 xml 代码,这是使用这些按钮的 Activity 的 xml 的一部分:

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


            }
        }); ....

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

有人在某处看到错误吗???


我应该把这些线放在哪里?我把它们放在我的按钮 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 并且它没有改变

最佳答案

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

事实上,我建议这样的代码:

<?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 - 按下安卓按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10019367/

相关文章:

android - 棉花糖权限应该仅在尚未授予时询问

python - 将 <Return> 绑定(bind)到按钮未按预期工作

android - Nexus 7 编译时没有出现按钮

Android:让颜色主题变暗

css - 正文宽度为页面而非屏幕的 100%

ios - 如何在特定时间点进行后台获取,比如午夜

java - android 中的 USB 设置未存储

java - 需要制作一个带有两个静态文本字段的 GridView

android自定义searchView圆角

php - 如何在sql表的每一行后面添加一个按钮?