Класс, расширяющий как Activity, так и BroadcastReceiver - PullRequest
1 голос
/ 04 января 2012

У меня есть tabhost, и если я нажму на любой из них, запустится новый класс и соответствующий ему xml.Каждый класс расширяет Activity, но мне также нужен каждый из них для расширения BroadcastReceiver.Зачем?прямо сейчас формулировки каждого вида деятельности и текст его просмотра на английском языке.Но в сборщике, если кто-то выбирает испанский, тогда мне нужно передать намерение установить испанский для класса Num1, Num2, Num3 и его мнение, что их формулировки должны быть изменены на испанский.Могу ли я иметь общедоступный класс Num1, расширения Activity, BroadcastReiver и т. Д. И т. П.?

 host.addTab(host.newTabSpec("Num1")
            .setIndicator("Num1", getResources().getDrawable(R.drawable.icon_light))
            .setContent(new Intent(this, Num1.class)));

       host.addTab(host.newTabSpec("Num2")
            .setIndicator("Num2", getResources().getDrawable(R.drawable.icon_wrench))
            .setContent(new Intent(this, Num2.class)));

       host.addTab(host.newTabSpec("Num3")
            .setIndicator("Num3", getResources().getDrawable(R.drawable.icon_user))
            .setContent(new Intent(this, Num3.class)));

1 Ответ

7 голосов
/ 04 января 2012

Вы не можете расширять два класса.Обычный способ справиться с этим - определить внутренний класс:

public class MyActivity extends Activity {
    private mBroadcastReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        . . .
        mBroadcastReceiver = new BroadcastReceiver() {
            // your receiver implementation
        };
        // register the receiver
    }
    . . .
}

В этом коде внутренний класс является анонимным подклассом BroadcastReceiver.Вы также можете создать отдельный класс, которому передается экземпляр вашей активности в конструкторе.Затем он может при необходимости отозвать вашу деятельность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...