0
我目前有一个带有5个选项卡的tabhost。在其中一个选项卡中,我有一个ImageView,当创建选项卡时,它通过POST提取数据以显示数字。我想知道如何从一个选项卡活动(比如说Rate.java)我可以调用该方法来更新该标签上的ImageView。更新从另一个活动tabhost imageView
我知道这不是很具体,但我认为我写了它,所以你知道我在说什么。
让我知道你是否需要任何信息。
talitore
我目前有一个带有5个选项卡的tabhost。在其中一个选项卡中,我有一个ImageView,当创建选项卡时,它通过POST提取数据以显示数字。我想知道如何从一个选项卡活动(比如说Rate.java)我可以调用该方法来更新该标签上的ImageView。更新从另一个活动tabhost imageView
我知道这不是很具体,但我认为我写了它,所以你知道我在说什么。
让我知道你是否需要任何信息。
talitore
根据所给出的信息,即马上想到的两个选项是:
Activity
),它将自定义侦听器接口与更新方法结合使用。让您的选项卡活动扩展该BaseActivity,并使用您的ImageView执行活动。然后,您可以从您的选项卡活动中调用侦听器的更新方法(将它们实例化为BaseActivity并传递侦听器),并使用ImageView对该活动进行操作。每个请求//编辑:
一个很好的起点有关的广播和接收器信息是为BroadcastReceiver
的文档。在你的情况下,最简单的方法就是在代码中创建它们。
一个最小的例子将包含类似如下:
BroadcastSendingActivity:
public class BroadcastSendingActivity extends Activity {
public static final String UPDATE_IMAGEVIEW = "UPDATE_IMAGEVIEW";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sender);
Intent i = new Intent();
i.setAction(UPDATE_IMAGEVIEW);
sendBroadcast(i);
}
}
BroadcastReceivingActivity:
public class BroadcastReceivingActivity extends Activity {
private BroadcastReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiver);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver();
}
private void registerReceiver() {
if (mReceiver == null) {
mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(BroadcastSendingActivity.UPDATE_IMAGEVIEW)) {
// code to update imageview...
}
}
};
}
getApplicationContext().registerReceiver(mReceiver, new IntentFilter(BroadcastSendingActivity.UPDATE_IMAGEVIEW));
}
private void unregisterReceiver() {
if (mReceiver != null) {
getApplicationContext().unregisterReceiver(mReceiver);
}
}
}
请注意,我没有测试代码,但我相信您能够找出我可能犯的任何错误。 :)
我会接受你的第一个选项作为我的答案。请您详细说明一下吗?也许有一个易于实现的东西的链接,你知道的作品?我会做我的研究。感谢您的时间。 –
我已经添加了一些代码片段来说明这个想法。 'BroadcastSendingActivity'将在创建时发送一个广播,它将被'BroadcastReceivingActivity'接收(假设它在发送广播之前已经注册为接收器)。在你的情况下,选项卡的活动将是发件人,而主办imageview的活动则是接收者。 –
为了验证,我必须将Rate.java和BroadcastReceivingActivity中的BroadcastSendingActivity子类添加到具有tabhost的活动中? –