重复的注销方法

时间:2018-11-14 21:14:20

标签: android

我是一个初学者,我想给您一个简单的问题。除Activity之外,每个LoginActivity中都使用一种方法。当我单击关闭图标时,它将打开。这是代码->

public void logOut(MenuItem item) {
    Intent intent = new Intent("THIS_CLASS".this, LoginActivity.class);
    startActivity(intent);
}

但是我不想在每个Activity中重复它,可能存在任何解决方案吗?我在这里写作是因为我无法在Web上找到解决方案。问题是我无法在互联网上表达我的意图。每种“重复方法”都给出与主题无关的答案。我不是在寻找完整的代码。我只喜欢提示。

2 个答案:

答案 0 :(得分:1)

首先,创建一个帮助类并添加如下所示的静态方法:

import android.content.Context;
import android.content.Intent;

public class MyHelper {
    public static void startActivityB(Context context) {
        Intent intent = new Intent(context, LoginActivity.class);
        context.startActivity(intent);
    }
}

然后调用该方法并传递如下所示的正确上下文:

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         MyHelper.startActivityB(YourActivity.this);
    }
});

注意:如果MyHelperLoginActivityYourActivity不在同一个程序包中,则应导入相应的程序包,这很容易。

答案 1 :(得分:-1)

这不是最佳解决方案,但是如果您想让一堆活动共享相同的方法,则创建一个BaseActivity,它们都是它们的扩展。

public abstract class BaseActivity extends Activity {
    //... Shared stuff
    protected void logOut() {
        //Do some data cleaning and whatever else you need
        Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
        startActivity(intent);
    }
}

public class MyActivity extends BaseActivity {
    //... Main code
    private void onLogOutClicked() {
        logout();
    }
}

请确保在发生这种情况时清除您的身份验证/会话数据。尝试将继承用于共享功能。