Android图像按钮表现奇怪

时间:2011-10-12 13:46:47

标签: android user-interface imagebutton

我正在为Android平板电脑构建一个应用程序框架,我遇到了一些ImageButtons的奇怪问题。这些按钮(Next& Prev)用于帮助浏览“内容页面”作为框架的一部分,并使用自定义背景绘图。

问题是每当我点击Prev按钮时,Next按钮会突出显示,而Prev按钮则没有。起初我认为这是一个简单的链接或@ + id /问题,但执行了Prev按钮的操作,而不是Next按钮。

以下是一些相关代码:

在onCreate()方法中:

nextButton = (ImageButton) findViewById(R.id.nextButton);
prevButton = (ImageButton) findViewById(R.id.prevButton);
nextButton.setOnClickListener(this);
prevButton.setOnClickListener(this);

onClick方法:

public void onClick(View v) {
    if(_cpp == null){
        finish();
    }else if (v == nextButton) {
        if (!_cpp.nextRes.equalsIgnoreCase("")) {
            // load next page
            _tempRes = _cpp.nextRes;
            //start transition out animations
            fadePageOut();
        } else {
            finish();
        }
    } else if (v == prevButton) {
        if (!_cpp.prevRes.equalsIgnoreCase("")) {
            // load previous page
            _tempRes = _cpp.prevRes;
            //start transition out animations
            fadePageOut();
        }
    }
}

我的可绘制XML:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable= "@drawable/prev_arrowhigh" />
<item android:state_pressed="true" android:state_enabled="true"
    android:drawable="@drawable/prev_arrowhigh" />
<item android:state_focused="true" android:state_enabled="true"
    android:drawable="@drawable/prev_arrow" />
<item android:state_enabled="true" android:drawable="@drawable/prev_arrow" />
</selector>

我一直在调试和寻找答案两天,没有运气。有趣的是它过去工作得很好......但即使恢复到我项目的先前版本似乎也没有任何帮助。

之前有没有人遇到过这个问题,或者有什么可能导致这个问题的原因?

2 个答案:

答案 0 :(得分:0)

您可以尝试的解决方案是在视图上设置onClick属性。解决方案可能如下所示:

onCreate方法:

nextButton = (ImageButton) findViewById(R.id.nextButton);
prevButton = (ImageButton) findViewById(R.id.prevButton);

活动的新方法:

public void nextButton(View v)
{
    if(_cpp == null || _cpp.nextRes.equalsIgnoreCase(""))
    {
        finish();
        return;
    }

    // load next page
    _tempRes = _cpp.nextRes;
    //start transition out animations
    fadePageOut();
}

public void prevButton(View v)
{
    if(_cpp == null)
    {
        finish();
        return;
    }

    if (!_cpp.prevRes.equalsIgnoreCase(""))
    {
        // load next page
        _tempRes = _cpp.nextRes;
        //start transition out animations
        fadePageOut();
    }
}

并添加:  的机器人:的onClick = “Next按钮”  的机器人:的onClick = “prevButton”

到xml文件中的按钮

答案 1 :(得分:0)

解决!愚蠢的,愚蠢的我......

下一个按钮显示为已选中,因为在我的代码(部分未发布)中,在我的fadePageOut()方法中禁用了该按钮(请参阅已发布的代码)。状态描述只是将错误的图像用于启用/禁用状态。

此:

<item android:state_enabled="false" android:drawable="@drawable/prev_arrowhigh"/>

应该是:

<item android:state_enabled="false" android:drawable="@drawable/prev_arrow"/>
由于图片不正确,浪费了两天时间...... *叹*