アクティビティを拡張するクラスがあります。これには「ログアウト」メニューオプションがあります。私がそれをクリックすると、別のクラスからのログアウト(コンテキスト)を呼び出します(アクティビティからは拡張しません)。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?
のですか?
を試してみてください
Functions.logout(getBaseContext());
渡すので、アクティビティのコンテキストを渡すことによって、機能クラスのMyTaskに活動のコンテキストをコールする必要がありますか? – user533844getBasecontextの代わりに "this"を渡してくれました。返信いただきありがとうございます。 – user533844