2011-10-24 5 views
0

アクティビティを拡張するクラスがあります。これには「ログアウト」メニューオプションがあります。私がそれをクリックすると、別のクラスからのログアウト(コンテキスト)を呼び出します(アクティビティからは拡張しません)。Android設定新しいアクティビティクラスからの意図

public class MyTask extends Activity{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.listlayout); 
} 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.mytaskmenu, menu); 
return true; 
    } 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.logout: 
       Functions.logout(getBaseContext()); 
       return true; 
      default: 
       return true; 
     } 
    } 
} 


public class Functions { 

    public static void logout(Context context) 
    { 
     DbAdapter_User db2= new DbAdapter_User(context); 
     db2.open(); 
     db2.handleLogout(); 
     db2.close(); 
     context.startActivity(new Intent(context, LogIn.class)); 
    } 

とエラーが間違って何が起こっているか

android.util.AndroidRuntimeException: 
Calling startActivity() from outside of an Activity context requires the   FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 

のですか?

+0

を試してみてくださいFunctions.logout(getBaseContext());渡すので、アクティビティのコンテキストを渡すことによって、機能クラスのMyTaskに活動のコンテキストをコールする必要がありますか? – user533844

+0

getBasecontextの代わりに "this"を渡してくれました。返信いただきありがとうございます。 – user533844

答えて

0

あなたは代わりにMyTaskにクラスでまたは関数にFunctions.logout(this.getContext());

+0

私は機能のログアウト(コンテキストコンテキスト)を変更する必要がありますか? – user533844

+0

いいえ、メソッドのパラメータをgetBaseContext()からthis.getContext()に変更するだけです –

+0

これは機能しました!!!!!!!!!!!!!!!!! – user533844

関連する問題