簡體   English   中英

從一個片段移動到另一個片段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM