我有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)));
答案 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
的匿名子类。您还可以创建一个单独的类,该类在构造函数中传递活动的实例。然后,它可以根据需要对您的活动进行回叫。