Java 为什么我的应用程序在单击片段类中的项目时崩溃?
当我点击SettingsFragment中的某个项目时,我的应用程序崩溃。在这个片段类中,所有内容都正确显示,但只有我的parseUrl项可以工作。我点击任何其他项目,我的应用程序就关闭了。为什么会这样?下面是我的代码Java 为什么我的应用程序在单击片段类中的项目时崩溃?,java,android,android-fragments,Java,Android,Android Fragments,当我点击SettingsFragment中的某个项目时,我的应用程序崩溃。在这个片段类中,所有内容都正确显示,但只有我的parseUrl项可以工作。我点击任何其他项目,我的应用程序就关闭了。为什么会这样?下面是我的代码 public class SettingsFragment extends Fragment { MainActivity context; public SettingsFragment() { //public constructor } @NonNull @O
public class SettingsFragment extends Fragment {
MainActivity context;
public SettingsFragment() {
//public constructor
}
@NonNull
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.navigation_drawer, container, false);
FrameLayout instructions = view.findViewById(R.id.instructions);
if (!getInstance().get("INSTRUCTIONS_ACTIVE", true)) {
instructions.setVisibility(View.GONE);
}
instructions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
openInstructions();
}
});
return view;
}
// Main functions
void openInstructions(){
Intent transactions = new Intent(context, FragmentsActivity.class);
transactions.putExtra("show","instructions");
startActivity(transactions);
}
public void settingsMenu(String Type){
switch (Type) {
case "instructions":
openInstructions();
break;
}
上下文似乎为空
使用
getContext()
或getActivity()
在onCreateView
中初始化上下文上下文未初始化,一种方法是添加此方法:
@Override
public void onAttach(Context ctx) {
super.onAttach(ctx);
context = ctx;
}
那么错误信息是什么?请包括logcat.java.lang.NullPointerException的整个堆栈跟踪:尝试在android.content.ComponentName.(ComponentName.java:130)的android.content.Intent.(Intent.java:6082)上的空对象引用上调用虚拟方法“java.lang.String android.content.Context.getPackageName()”在com.koupr.coinr.fragments.SettingsFragment.openTransactions(SettingsFragment.java:171)在com.koupr.coinr.fragments.SettingsFragment$5.onClick(SettingsFragment.java:92)你是对的,我检查了日志。我该怎么写呢?公共视图onCreateView(…{context=getContext();…}