对于我的应用程序,我使用了一个bouton注销,但现在我想使用操作栏(当用户点击注销图标时他会进入主页)并且我不能让它们一起生活。
(我是法国人,很难编码,因为所有tuto都是英文的。所以请耐心等待我。)
非常感谢。
我的按钮代码为:
btn_logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sessionManager.logout();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
});
我想在其中添加图标注销的代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_logout) {
return true;
}
return super.onOptionsItemSelected(item);
}
我的XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_logout"
android:icon="@android:drawable/ic_lock_power_off"
android:title="@string/logout"
app:showAsAction="ifRoom" />
</menu>
答案 0 :(得分:1)
当用户点击菜单项时,您需要执行某些操作。
if (id == R.id.action_logout) {
logout();
return true;
}
将您的注销代码移至方法,以便您可以从任何地方调用它:
private void logout() {
sessionManager.logout();
startActivity(new Intent(this, MainActivity.class));
finish();
}
答案 1 :(得分:1)
这样做好。谢谢你们。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_logout) {
sessionManager.logout();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
return true;
}
return super.onOptionsItemSelected(item);
}