我是一个初学者,我想给您一个简单的问题。除Activity
之外,每个LoginActivity
中都使用一种方法。当我单击关闭图标时,它将打开。这是代码->
public void logOut(MenuItem item) {
Intent intent = new Intent("THIS_CLASS".this, LoginActivity.class);
startActivity(intent);
}
但是我不想在每个Activity
中重复它,可能存在任何解决方案吗?我在这里写作是因为我无法在Web上找到解决方案。问题是我无法在互联网上表达我的意图。每种“重复方法”都给出与主题无关的答案。我不是在寻找完整的代码。我只喜欢提示。
答案 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);
}
});
注意:如果MyHelper
,LoginActivity
,YourActivity
不在同一个程序包中,则应导入相应的程序包,这很容易。
答案 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();
}
}
请确保在发生这种情况时清除您的身份验证/会话数据。尝试将继承用于共享功能。