刚开始在做ActionBar和TabHost结合的案例时,总是报各种奇怪的问题,后来经过整理解决了问题,现在将代码贴出来,以后有用时拿出来看看。
package com.lashou.actionbardemo;
import android.app.LocalActivityManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import android.widget.Toast;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
@SuppressWarnings("deprecation")
public class MainActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ctx = this;
//设置ActionBar背景颜色
getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.color.top_bar_bg));
//设置选择显示的选项
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_USE_LOGO, ActionBar.DISPLAY_SHOW_HOME);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
// getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setCustomView(getLayoutInflater().inflate(R.layout.action_bar_display_options_custom, null));
getSupportActionBar().setDisplayOptions(com.actionbarsherlock.app.ActionBar.DISPLAY_SHOW_CUSTOM, com.actionbarsherlock.app.ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().getCustomView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "customeView", 0).show();
}
});
init(savedInstanceState);
}
private void init(Bundle savedInstanceState) {
TabHost mTabHost = (TabHost) findViewById(android.R.id.tabhost);
// TabHost mTabHost = getTabHost();
LocalActivityManager lam = new LocalActivityManager(this, true);
lam.dispatchCreate(savedInstanceState);
mTabHost.setup(lam);
TabSpec tab1 = mTabHost.newTabSpec("tab1");
TabSpec tab2 = mTabHost.newTabSpec("tab2");
TabSpec tab3 = mTabHost.newTabSpec("tab3");
tab1.setIndicator("功能1");
tab2.setIndicator("功能2");
tab3.setIndicator("功能3");
tab1.setContent(new Intent(this,Activity01.class));
tab2.setContent(new Intent(this,Activity02.class));
tab3.setContent(new Intent(this,Activity03.class));
mTabHost.addTab(tab1);
mTabHost.addTab(tab2);
mTabHost.addTab(tab3);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_search:
Toast.makeText(getApplicationContext(), "search", 0).show();
break;
case android.R.id.home:
Toast.makeText(getApplicationContext(), "home", 0).show();
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu_main_search,menu);
return super.onCreateOptionsMenu(menu);
}
}