一个扩展Activity和BroadcastReceiver的类

时间:2012-01-04 02:15:57

标签: android android-activity broadcastreceiver

我有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 个答案:

答案 0 :(得分:7)

您无法扩展两个类。解决这个问题的常用方法是定义一个内部类:

public class MyActivity extends Activity {
    private mBroadcastReceiver;

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

在此代码中,内部类是BroadcastReceiver的匿名子类。您还可以创建一个单独的类,该类在构造函数中传递活动的实例。然后,它可以根据需要对您的活动进行回叫。

相关问题