I am working with tab bar. I have more then three screens in each tab and when I press the tab button of selected tab, it should go to first screen of that tab, but it doesn't go.
Here is my code for tabar.
public class TabUi extends TabActivity {
private static final String TAG_DEALS = "DEAL";
private static final String TAG_SEARCH = "SEARCH";
private static final String TAG_BOOKMARKS = "ALERTS";
private static final String TAG_FRIENDS = "BUZZ";
private static final String TAG_MORE = "MORE";
/*
* private static final String TAG_DEALS = ""; private static final String
* TAG_SEARCH = ""; private static final String TAG_BOOKMARKS = ""; private
* static final String TAG_FRIENDS = ""; private static final String
* TAG_MORE ="";
*/
protected LocationManager locationManager;
Location location;
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in
// Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in
// Milliseconds
// private TabHost host = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, DealsActivityGroup.class);
spec = tabHost.newTabSpec(TAG_DEALS)
.setIndicator(TAG_DEALS, res.getDrawable(R.drawable.deal_icon))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SearchActivityGroup.class);
spec = tabHost
.newTabSpec(TAG_SEARCH)
.setIndicator(TAG_SEARCH,
res.getDrawable(R.drawable.search_icon))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, BookmarksActivityGroup.class);
spec = tabHost
.newTabSpec(TAG_BOOKMARKS)
.setIndicator(TAG_BOOKMARKS,
res.getDrawable(R.drawable.bookmark_icon))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, FriendsActivityGroup.class);
spec = tabHost
.newTabSpec(TAG_FRIENDS)
.setIndicator(TAG_FRIENDS,
res.getDrawable(R.drawable.friend_icon))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, MoreActivity.class);
spec = tabHost.newTabSpec(TAG_MORE)
.setIndicator(TAG_MORE, res.getDrawable(R.drawable.more_icon))
.setContent(intent);
tabHost.addTab(spec);
}
/*@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}*/
}
This is the code for tab activity group:
public class DealsActivityGroup extends ActivityGroup {
public static DealsActivityGroup group;
private ArrayList<View> history;
private ProgressDialog pDialog;
String Url;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.history = new ArrayList<View>();
group = this;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// new DealsFirst().execute();
View view = getLocalActivityManager().startActivity(
"Dealsfirstactivity",
new Intent(DealsActivityGroup.this, Dealsfirstactivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
public void replaceView(View v) {
// Adds the old one to history
history.add(v);
v.setFocusable(true);
v.setFocusableInTouchMode(true);
v.requestFocus();
// Changes this Groups View to the new View.
setContentView(v);
}
public void back() {
System.out.println("History size: " + history.size());
if (history.size() > 1) {
history.remove(history.size() - 1);
View v = history.get(history.size() - 1);
System.out.println("If size: " + history.size());
v.setFocusable(true);
v.setFocusableInTouchMode(true);
v.requestFocus();
System.out.println("View : " + v);
setContentView(v);
} else
// System.out.println("History size: "+ history.size());
this.finish();
}
@Override
public void onBackPressed() {
DealsActivityGroup.group.back();
return;
}
public class DealsFirst extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
// pDialog = new ProgressDialog(Dealsfirstactivity.this);
// pDialog.setMessage("Please wait!..");
// pDialog.setIndeterminate(false);
// pDialog.setCancelable(true);
// pDialog.show();
}
protected String doInBackground(String... args) {
if (StorageManager.Instance().GetdealscategoryData() == null) {
ServiceHelper.Instance().Dealscategorylist();
}
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String result) {
// dismiss the dialog once done
super.onPostExecute(result);
if (StorageManager.Instance().GetdealscategoryData() != null
&& StorageManager.Instance().GetdealscategoryData().size() > 0) {
new Dealslistfirst().execute();
}
}
}
public class Dealslistfirst extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(getDialogContext());
pDialog.setMessage("Please wait!..");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
protected String doInBackground(String... args) {
ServiceHelper.Instance().dealsforyoulist(Url);
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String result) {
// dismiss the dialog once done
super.onPostExecute(result);
if (StorageManager.Instance().GetdealsData() != null
&& StorageManager.Instance().GetdealsData().size() > 0) {
// runOnUiThread(action)
} else if (StorageManager.Instance().GetdealsData() == null) {
}
if (pDialog.isShowing()) {
pDialog.dismiss();
}
View view = getLocalActivityManager().startActivity(
"Dealsfirstactivity",
new Intent(DealsActivityGroup.this,
Dealsfirstactivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
replaceView(view);
}
}
private Context getDialogContext() {
Context context;
if (getParent() != null)
context = getParent();
else
context = this;
return context;
}
}