问题
I am new in android, I need to ask this question.
I build some android application that implement the TabLayout, so every activity is held by every tab on my app. But before it, we should face the Login activity.
My question is how can I Logout when we are in the Tab Activity, and how can I refresh it in every activity on that tab? I have 3 tab, and I implement menu to "logout" and "refresh", and also have menu for "about". Here is my sample code on TabActivity, but I just implement toast in every action when we click menu.
public class SampleTabActivity extends TabActivity {
private TabHost tabHost;
private Resources res;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.sipadutab);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
res = getResources(); // Resource object to get Drawables
tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
tabHost.setCurrentTab(0);
tabHost.setOnTabChangedListener(this); // set listener to tabhost IMPORTANT IMPORTANT
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, FirstActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("first").setIndicator("First",
res.getDrawable(R.drawable.one))
.setContent(intent);
tabHost.addTab(spec);
// Initialize a TabSpec for each tab and add it to the TabHost
intent = new Intent().setClass(this, SecondActivity.class);
spec = tabHost.newTabSpec("second").setIndicator("Second",
res.getDrawable(R.drawable.two))
.setContent(intent);
tabHost.addTab(spec);
// Initialize a TabSpec for each tab and add it to the TabHost
intent = new Intent().setClass(this, ThirdActivity.class);
spec = tabHost.newTabSpec("third").setIndicator("Third",
res.getDrawable(R.drawable.three))
.setContent(intent);
tabHost.addTab(spec);
// Initiating Menu XML file (menu.xml)
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.layout.menuscreen, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_about:
// Single menu item is selected do something
// Ex: launching new activity/screen or show alert message
Toast.makeText(SampleTabActivity.this, "About is Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_refresh:
Toast.makeText(SampleTabActivity.this, "Refresh is Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_logout:
Toast.makeText(SampleTabActivity.this, "Logout is Selected", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Thanks in advance.
回答1:
I remove all tabs when I want to logout and recreate them with new credentials.
getTabHost().clearAllTabs();
来源:https://stackoverflow.com/questions/8950399/how-can-i-logout-from-my-application-and-refresh-on-android