2012-01-21 8 views
1

私はアンドロイドで新しいです、私はこの質問をする必要があります。アプリケーションからログアウトしてアンドロイドで更新するにはどうすればよいですか?

私は、TabLayoutを実装するいくつかのアンドロイドアプリケーションを作成します。そのため、すべてのアクティビティはアプリのすべてのタブで保持されます。 しかし、その前に、ログイン操作に直面する必要があります。

私はタブアクティビティにいるときにどのようにログアウトできますか、そのタブのすべてのアクティビティでどのように更新できますか?私は3つのタブを持って、私は "ログアウト"と "リフレッシュ"にメニューを実装し、また、 "約"のメニューがあります。 ここで私のサンプルコードはTabActivityですが、メニューをクリックすると、すべてのアクションでトーストが実装されます。

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); 
    } 
} 

} 

ありがとうございます。

答えて

2

ログアウトして新しい資格情報で再作成するときに、すべてのタブを削除します。

getTabHost().clearAllTabs(); 
+0

ありがとうございました。それは私の作品です。 :Dそして私はこれを追加します finish(); startActivity(新しいインテント( "android.mobile.yehoo.LoginActivity"));その後、どうやってリフレッシュできますか? – AdityaSetyadi

+0

ログイン後、onCreate()と同じタブをもう一度追加します。 – Fedor

+0

はい、私はそれがあなたが意味するものを得て、それはすでに私の上で動作します。私のもう一つの問題は、 "about"と "logout"の横に作成したメニューの "refresh"ボタンを押すだけで、どのようにしてそのタブのすべてのアクティビティをリフレッシュできますか。たとえば、私がSecondActivityを利用しているとき、私はそれをリフレッシュして、SecondActivityを再び開いて、FirstActivityとThirdActivityのときに開きたいと思います。 – AdityaSetyadi

関連する問題