[英]moving from one fragment to another
當我從一個片段切換到另一個片段時,應用程序崩潰。 我不知道如何解決它。我不知道該怎么做,因為我是 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 class 是這個
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);
}
``
謝謝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);
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.