Несмотря на то, что CommonsWare указал, что использование содержимого «Действия как вкладка» устарело, но если вы все еще хотите это сделать, то одной из возможностей является использование вложенного BroadcastReceiver
, и действие «Содержимое» отправляет намерение вещания. Я не уверен, что это сработает, но я бы попробовал что-то вроде следующего ...
public class MainActivity extends Activity {
bool tabMonitorIsRegistered = false;
TabMonitor tabMonitor = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Other code
tabMonitor = new TabMonitor();
}
@Override
protected void onResume() {
super.onResume();
if (!tabMonitorIsRegistered) {
registerReceiver(tabMonitor, new IntentFilter(Intent.com.mydomain.myapp.ACTION_TAB_CHANGE));
tabMonitorIsRegistered = true;
}
}
@Override
protected void onPause() {
super.onPause();
if (tabMonitorIsRegistered) {
unregisterReceiver(tabMonitor);
tabMonitorIsRegistered = false;
}
}
// Nested BroadcastReceiver
private class TabMonitor extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
// Process the Intent here to change the tab title
}
}
}
В этот момент мне приходит в голову, что каждое «контентное» действие должно сообщать MainActivity (через отправляемое им намерение) «кто» это. Чтобы сделать это, я использовал бы Intent extra при добавлении операций с вкладками для контента, идентифицируя каждую из них как «tab1», tab2 »и т. Д. Когда запускаются операции« content », например, в onCreate (), они могут сохранить эту строку и использовать ее. в намерении они отправляют в качестве широковещательной рассылки на MainActivity.