package com.usai.apex; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import com.usai.util.commonUtil; import android.R.integer; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.FrameLayout; import android.widget.TabHost; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.support.v4.app.NavUtils; public class DetailActivity extends FragmentActivity implements TabHost.TabContentFactory { // int radomid = 1 + (int) (Math.random() * 15); TabHost mTabHost; LinkedHashMap tabmap = new LinkedHashMap(); // HashMap fragments = new HashMap(); String function_name; String _id; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_detail); int count = getIntent().getIntExtra("actions_count", 0); for (int i = 0; i < count; i++) { tabmap.put(getIntent().getStringExtra("action" + i), commonUtil.generateViewId()); } function_name = getIntent().getStringExtra("function_name"); _id = getIntent().getStringExtra("_id"); setupTabs(); } // @Override // protected void onSaveInstanceState(Bundle outState) // { // Iterator iter=fragments.keySet().iterator(); // // while (iter.hasNext()) // { // String tag = (String) iter.next(); // getSupportFragmentManager().putFragment(outState,tag,fragments.get(tag)); // // } // outState.putStringArray("tags", fragments.keySet().toArray(new // String[0])); // Log.d("onSaveInstanceState","save fragments" + // fragments.keySet().size()); // super.onSaveInstanceState(outState); // } // // @Override // protected void onRestoreInstanceState(Bundle savedInstanceState) // { // String [] tags =savedInstanceState.getStringArray("tags"); // Log.d("onRestoreInstanceState","load fragments" + tags.length); // for(int i=0;i iter = tabmap.keySet().iterator(); while (iter.hasNext()) { String name = (String) iter.next(); mTabHost.addTab(mTabHost.newTabSpec(name).setIndicator(name) .setContent(this)); // String val = (String) tabmap.get(field); // parms.putString(field, val); // // Cursor c = (Cursor) m_listadapter.getItem(key); // Log.d("@@@@@@@@@", field + " : " + val); } // for (int i=1; i <= tabmap.size(); i++) { // String name = tabmap.keySet().iterator().; // mTabHost.addTab(mTabHost.newTabSpec(name) // .setIndicator(name) // .setContent(this)); // } // // if(true) // // return; // // // View tab1 = createTabIndicatorView(mTabHost.getTabWidget(), // // "Login",null); // // tabhost.addTab( // // tabhost.newTabSpec("tab" + i).setIndicator(tab) // // .setContent(Mytabfirst.this)); tabhost.setCurrentTab(i); // // i++; tab = null; // // // // 生成底部自定义样式的按钮 // // String[] title = new String[] { "Login", "Not login" }; // // int[] tabIds = new int[] { R.id.tab1, R.id.tab2 }; // mTabHost.addTab(mTabHost.newTabSpec("Login").setIndicator("Login") // .setContent(this)); // // // mTabHost.addTab(mTabHost.newTabSpec("Direct Tracking").setIndicator("Direct Tracking").setContent(R.id.tab2)); // mTabHost.addTab(mTabHost.newTabSpec("Service Location") // .setIndicator("Service Location").setContent(this)); // FragmentManager manager = this.getFragmentManager(); // Instantiate a new fragment. // Fragment loginFragment = new LoginFragment(); // // Fragment dtFragement = new DirectTrackingFragment(); // Fragment slFragment = new ServiceLocationFragment(); // // Add the fragment to the activity, pushing this transaction // // on to the back stack. // // FragmentTransaction ft = // getSupportFragmentManager().beginTransaction(); // ft.replace(mTabHost.getTabContentView().getChildAt(0).getId(), // loginFragment); // ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); // ft.addToBackStack("Login"); // // // ft.replace(R.id.tab2, dtFragement); // // ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); // // ft.addToBackStack("Tracking"); // // ft.replace(R.id.tab3, (Fragment) slFragment); // ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); // ft.addToBackStack("Location"); // // ft.commit(); // if (manager.findFragmentByTag(tabId) == null) // { // FragmentTransaction trans = manager.beginTransaction(); // trans.replace(contentViewID, frag, tabId); // trans.commit(); // } // for (int i = 0; i < title.length; i++) { // Button button = new Button(this); // button.setText(title[i]); // button.setBackgroundDrawable(this.getResources().getDrawable( // R.drawable.tab_lable)); //自定义按钮样式 // mTabHost.addTab(mTabHost.newTabSpec(title[i]).setIndicator(button) // .setContent(tabIds[i])); // } // mTabHost.setOnTabChangedListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.detail, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // This ID represents the Home or Up button. In the case of this // activity, the Up button is shown. Use NavUtils to allow users // to navigate up one level in the application structure. For // more details, see the Navigation pattern on Android Design: // // // http: // // developer.android.com/design/patterns/navigation.html#up-vs-back // NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } }