I want to know when my TabActivity
has inflated so i tried this code
@Override
protected void onFinishInflate() {
super.onFinishInflate();
}
i get the error: must override or implement a supertype method
I cannot understand why that is not working in the TabActivity.
Can Anyone explane this?
package com.carlsberg.bungle.history;
import com.carlsberg.bungle.Consts;
import com.carlsberg.bungle.R;
import android.app.TabActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.TextView;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
public class TabActivityHistoryLauncher extends TabActivity {
private final String TAG = "TabActivityHistoryLauncher";
private TabHost tabHost;
MyListener myListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.tab_activity_history);
tabHost = (TabHost) findViewById(android.R.id.tabhost);
Intent int2 = new Intent(this, ActivityTabGroup2.class);
Intent int1 = new Intent(this, ActivityTabGroup1.class);
tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider);// Divider .9.png
setupTab(new TextView(this), getString(R.string.string_incoming),int1);
setupTab(new TextView(this), getString(R.string.string_outgoing),int2);
myListener = new MyListener();
Intent intent = getIntent();
if(intent != null){
Bundle extras = intent.getExtras();
if(extras != null){
String outgoing = extras.getString(Consts.SWITSH_TO_OUTGOING);
String incoming = extras.getString(Consts.SWITSH_TO_INCOMING);
if(incoming != null){
tabHost.setCurrentTab(0);
}else if(outgoing != null){
tabHost.setCurrentTab(1);
}
}
}
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
}
private void setupTab(final View view, final String tag, Intent int1) {
View tabview = createTabView(tabHost.getContext(), tag);
TabSpec setContent = tabHost.newTabSpec(tag).setIndicator(tabview).setContent(int1);
tabHost.addTab(setContent);
}
private static View createTabView(final Context context, final String text) {
View view = LayoutInflater.from(context).inflate(R.layout.tab_history_a_tab, null);
TextView tv = (TextView) view.findViewById(R.id.tabsText);
tv.setText(text);
return view;
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if(intent != null){
Bundle extras = intent.getExtras();
if(extras != null){
String outgoing = extras.getString(Consts.SWITSH_TO_OUTGOING);
String incoming = extras.getString(Consts.SWITSH_TO_INCOMING);
if(incoming != null){
tabHost.setCurrentTab(0);
}else if(outgoing != null){
tabHost.setCurrentTab(1);
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (myListener != null) {
unregisterReceiver(myListener);
}
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume ***********************************************************************");
IntentFilter intentFilterInStart = new IntentFilter(Consts.COM_CARLSBERG_INCOMINGSTATUS_ACTION_START );
IntentFilter intentFilterOutStart = new IntentFilter(Consts.COM_CARLSBERG_OUTGOINGSTATUS_ACTION_START );
registerReceiver(myListener, intentFilterInStart);
registerReceiver(myListener, intentFilterOutStart);
//MyListenerIsRegistered = true;
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onResume ***********************************************************************");
}
// Nested 'listener'
protected class MyListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Consts.COM_CARLSBERG_INCOMINGSTATUS_ACTION_START)) {
tabHost.setCurrentTab(0);
}
if (intent.getAction().equals(Consts.COM_CARLSBERG_OUTGOINGSTATUS_ACTION_START)) {
tabHost.setCurrentTab(1);
}
}
}
}
An Activity is not a View. There is no onFinishInflate
method in Activity. What is it that you need to do after the View you use in setContentView
has inflated?
I believe it is very bad practice to try to mess with views in a separate activity. See these links for an alternative way to share data between tabs