Android ImageButton - определяет, какой ресурс в настоящее время устанавливается

Существует ли способ, которым я могу найти, какой ресурс конкретный ImageButton набор к в любой момент времени?

Для, например: у Меня есть ImageButton, на который я установил R.drawable.btn_on onCreate. Позже, в какой-то момент, ImageButton установлен на R.drawable.btn_off. Я хочу смочь проверить, на какой ресурс ImageButton установлен в моем коде.

Спасибо Chris

10
задан Nikhil 4 July 2012 в 16:36
поделиться

3 ответа

Просто используйте setTag () и getTag () , чтобы связать и получить пользовательские данные для вашего ImageView .

15
ответ дан 3 December 2019 в 20:40
поделиться

Вы можете определить свой собственный класс как дочерний для ImageButton , добавить частную переменную int и установить ее при вызове setImageResource (int) . Что-то вроде:

public class MyImageButton extends ImageButton {

    private int mImageResource = 0;

    @Override
    public void setImageResource (int resId) {
        mImageResource = resId;
        super.setImageResource(resId);
    }

    public int getImageResource() {
        return mImageResource;
    }
}

Я не тестировал это, но вы поняли - тогда вы можете вызвать getImageResource () на своей кнопке, предполагая, что он был ранее установлен с помощью setImageResource ().

3
ответ дан 3 December 2019 в 20:40
поделиться

Я не знаю, как получить доступ к ресурсу напрямую, но для того, чего вы пытаетесь достичь, разве не достаточно просто получить состояние?

    ImageButton btn = (ImageButton) findViewById(R.id.btn);

    int [] states = btn.getDrawableState();
    for (int i : states) {
        if (i == android.R.attr.state_pressed) {
            Log.v("btn", "Button in pressed state");
        }
    }

http://developer.android.com/reference/android/R.attr.html#state_pressed

0
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: