package my.project.washingcar.activity;
import my.project.washingcar.R;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
@SuppressWarnings("deprecation")
public class ActMain extends TabActivity {
private TabHost tabHost;
private static final int TAB_COUNT = 3;
private static final Class<?>[] TAB_ACT = { ActRecommend.class,
ActNearBy.class, ActMe.class };
private static final int[] TAB_TITLE = { R.string.tab_title_recommend,
R.string.tab_title_nearby, R.string.tab_title_me };
private static final int[] TAB_DRAWABLE = { R.drawable.icon_recommend,
R.drawable.icon_nearby, R.drawable.icon_me };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_main);
init();
}
private void init() {
tabHost = getTabHost();
for (int i = 0; i < TAB_COUNT; i++) {
addTab(TAB_ACT[i], TAB_TITLE[i], TAB_TITLE[i], TAB_DRAWABLE[i]);
}
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.main_tab_group);
radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
int index = 0;
switch (checkedId) {
case R.id.main_tab_recommend:
break;
case R.id.main_tab_nearby:
index = 1;
break;
case R.id.main_tab_me:
index = 2;
break;
default:
break;
}
tabHost.setCurrentTab(index);
}
});
}
private void addTab(Class<?> cls, int tagId, int titleId, int iconId) {
Intent intent = new Intent().setClass(this, cls);
TabSpec tabSpec = tabHost.newTabSpec(getString(tagId))
.setIndicator(getString(titleId)).setContent(intent);
tabHost.addTab(tabSpec);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
showExitDialog();
}
return true;
}
return super.dispatchKeyEvent(event);
}
public void showExitDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(R.string.exit_hint);
builder.setPositiveButton(R.string.exit, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
exit();
}
});
builder.setNegativeButton(R.string.cancel, null);
AlertDialog dialog = builder.create();
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.show();
}
private void exit() {
finish();
System.exit(0);
}
}