当我从一个片段切换到另一个片段时,应用程序崩溃。我不知道该怎么解决。我不知道该怎么办,因为我是android的新手。我在等你的帮助
调试控制台:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.a5starcompany.mybank1/com.a5starcompany.mybank1.MainActivity}: java.lang.NullPointerException: You cannot start a load on a not yet attached View or a Fragment where getActivity() returns null (which usually occurs when getActivity() is called before the Fragment is attached or after the Fragment is destroyed).
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1073)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Caused by: java.lang.NullPointerException: You cannot start a load on a not yet attached View or a Fragment where getActivity() returns null (which usually occurs when getActivity() is called before the Fragment is attached or after the Fragment is destroyed).
at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:29)
at com.bumptech.glide.Glide.getRetriever(Glide.java:709)
at com.bumptech.glide.Glide.with(Glide.java:741)
at com.a5starcompany.mybank1.Adapter.LoanAdapter.<init>(LoanAdapter.java:28)
at com.a5starcompany.mybank1.MainActivity.onCreate(MainActivity.java:90)
at android.app.Activity.performCreate(Activity.java:6691)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6251)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1073)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod(`enter code here`) returned Gms: com.google.firebase.auth.api.internal.zzao@638cec8
I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@638cec8
I/art: Enter while loop.
java类是这个
if (mActivity == null) {
return;
}
final LoanModel loanModel = (LoanModel) this.list.get(i);
myClass.loanName.setText(loanModel.getLoanName());
myClass.loanPercentage.setText(loanModel.getPercentage());
myClass.loanStarting.setText(String.valueOf(loanModel.getLoanStaring()));
myClass.emiStarting.setText(String.valueOf(loanModel.getEmiStaring()));
myClass.loanForm.setText(loanModel.getLoanForm());
this.glide.load(loanModel.getImage()).into(myClass.loanImage);
}
``
答案 0 :(得分:0)
谢谢zovakk的答复,但我不太理解您在说什么,这是我对该活动的完整代码
public Activity mActivity;
Context context;
RequestManager glide = Glide.with(this.context);
public ArrayList<LoanModel> list;
public class MyClass extends ViewHolder {
LinearLayout cardview;
TextView emiStarting;
TextView loanForm;
ImageView loanImage;
TextView loanName;
TextView loanPercentage;
TextView loanStarting;
public MyClass(View view) {
super(view);
this.cardview = (LinearLayout) view.findViewById(R.id.cardview);
this.loanImage = (ImageView) view.findViewById(R.id.imge_loan);
this.loanName = (TextView) view.findViewById(R.id.loan_name);
this.loanPercentage = (TextView) view.findViewById(R.id.loan_perc);
this.loanStarting = (TextView) view.findViewById(R.id.loan_loanStarting);
this.emiStarting = (TextView) view.findViewById(R.id.emi_Staring);
this.loanForm = (TextView) view.findViewById(R.id.loan_form_name);
}
}
public LoanAdapter(MainActivity mainActivity, ArrayList<LoanModel> arrayList) {
this.context = mainActivity;
this.list = arrayList;
}
public MyClass onCreateViewHolder(ViewGroup viewGroup, int i) {
return new MyClass(LayoutInflater.from(this.context).inflate(R.layout.loan_layout, null));
}
public void onBindViewHolder(MyClass myClass, int i) {
if (mActivity == null) {
return;
}
final LoanModel loanModel = (LoanModel) this.list.get(i);
myClass.loanName.setText(loanModel.getLoanName());
myClass.loanPercentage.setText(loanModel.getPercentage());
myClass.loanStarting.setText(String.valueOf(loanModel.getLoanStaring()));
myClass.emiStarting.setText(String.valueOf(loanModel.getEmiStaring()));
myClass.loanForm.setText(loanModel.getLoanForm());
this.glide.load(loanModel.getImage()).into(myClass.loanImage);
myClass.cardview.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent(LoanAdapter.this.context, HomeLoanActiviy.class);
intent.putExtra("LoanName", loanModel.getLoanName());
intent.putExtra("ImageName", loanModel.getImage());
intent.putExtra("Percentage", loanModel.getPercentage());
intent.putExtra("LoanStarting", loanModel.getLoanStaring());
intent.putExtra("EMIStarting", loanModel.getEmiStaring());
intent.putExtra("LoanForm", loanModel.getLoanForm());
LoanAdapter.this.context.startActivity(intent);
}
});
}