1

I am new in android, I need to ask this question.

I build some android applications that implements 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 tabs, and I implement a menu to "logout" and "refresh", and also have a menu for "about". Here is my sample code on TabActivity, but I just implement toast in every action when we click the 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.

Samet ÖZTOPRAK
  • 3,112
  • 3
  • 32
  • 33
AdityaSetyadi
  • 161
  • 1
  • 2
  • 18

1 Answers1

2

I remove all tabs when I want to logout and recreate them with new credentials.

getTabHost().clearAllTabs();
Fedor
  • 43,261
  • 10
  • 79
  • 89
  • Thanks. it works on me. :D And I add this finish(); startActivity(new Intent("android.mobile.yehoo.LoginActivity")); Then, how can I refresh it? – AdityaSetyadi Jan 21 '12 at 06:16
  • After login you will add the same tabs once again - the same as you do in onCreate(). – Fedor Jan 21 '12 at 06:20
  • Yes, I got it what you mean, and It already works on me. My another problem is, how can I refresh my every activity on that tab just with push "refresh" button on menu that I also created beside "about" and "logout". For example, when I'm on the SecondActivity, I want to refresh it and open it again the SecondActivity, and also when in FirstActivity and ThirdActivity. – AdityaSetyadi Jan 21 '12 at 06:41