Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RecyclerView:列表和适配器为空_Java_Android_Android Fragments_Android Recyclerview - Fatal编程技术网

Java RecyclerView:列表和适配器为空

Java RecyclerView:列表和适配器为空,java,android,android-fragments,android-recyclerview,Java,Android,Android Fragments,Android Recyclerview,我想从片段2中的编辑文本中输入的内容为片段1中的recyclerview添加项目,然后单击fab以添加带有我在片段2中输入的详细信息的项目。。问题是当我调试mExampleAdapter/适配器和mExampleList都为null时,我不知道为什么 这是片段1 JAVA代码 package com.example.admin.test2; import android.os.Bundle; import android.support.v4.app.Fragment; import and

我想从片段2中的编辑文本中输入的内容为片段1中的recyclerview添加项目,然后单击fab以添加带有我在片段2中输入的详细信息的项目。。问题是当我调试mExampleAdapter/适配器和mExampleList都为null时,我不知道为什么

这是片段1 JAVA代码

package com.example.admin.test2;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import java.util.ArrayList;


/**
 * A simple {@link Fragment} subclass.
 */
public class MainScreen extends Fragment {

    private ArrayList <ExampleItem> mExampleList;

    private RecyclerView mRecyclerView;
    private RecyclerView.Adapter mAdapter;
    private RecyclerView.LayoutManager mLayoutManager;

    public MainScreen() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        View view = inflater.inflate(R.layout.fragment_main_screen, container, false);

        DataHandlers dataHandlers = new DataHandlers();

        try {
            String deTails = dataHandlers.getDetails();
            int aMount = dataHandlers.getAmount();
            Toast.makeText(getActivity().getApplicationContext(), deTails + "" + aMount, Toast.LENGTH_LONG).show();
            //TAS DITO KA NA MAG SET TEXT SA MGA TEXTVIEW NG AMOUNT AT DETAILS

        } catch (Exception ex) {
            Toast.makeText(getActivity().getApplicationContext(), ex.getMessage().toString(), Toast.LENGTH_LONG).show();
        }

        mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);

        mExampleList = new ArrayList <>();
        //   mExampleList.add(new ExampleItem(R.drawable.ic_library_add_black_24dp, "", "", "ADD EXPENSES"));


        mRecyclerView = view.findViewById(R.id.recyclerView);
        mRecyclerView.setHasFixedSize(true);
        mLayoutManager = new LinearLayoutManager(getContext());
        mAdapter = new ExampleAdapter(mExampleList);

        mRecyclerView.setLayoutManager(mLayoutManager);
        mRecyclerView.setAdapter(mAdapter);

        return view;
    }

    public void insertItem() {
        // String amount = String.valueOf(amountt.getText());
        //  String details = String.valueOf((detailss.getText()));
        // String date = String.valueOf((datee.getText()));
/*
        Bundle bundle = getArguments();
        String deTails = bundle.getString("Details");
        String aMount = bundle.getString("Amount");
*/
        //int position = bundle.getInt("Position");
        DataHandlers dataHandlers = new DataHandlers();

        String deTails = dataHandlers.getDetails();
        int aMount = dataHandlers.getAmount();

        mExampleList.add(0, new ExampleItem(R.drawable.food, "Food & Drink", "" + deTails, "₱ " + aMount));
        mAdapter.notifyDataSetChanged();


    }
}
这就是错误所在

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.admin.test2, PID: 30713
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.add(int, java.lang.Object)' on a null object reference
                      at com.example.admin.test2.MainScreen.insertItem(MainScreen.java:82)
                      at com.example.admin.test2.Expense$1.onClick(Expense.java:101)
                      at android.view.View.performClick(View.java:6897)
                      at android.view.View$PerformClick.run(View.java:26101)
                      at android.os.Handler.handleCallback(Handler.java:789)
                      at android.os.Handler.dispatchMessage(Handler.java:98)
                      at android.os.Looper.loop(Looper.java:164)
                      at android.app.ActivityThread.main(ActivityThread.java:6944)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
根据DEBUG,mExampleList和mAdapter为空

mExampleList.add(0, new ExampleItem(R.drawable.food, "Food & Drink", "" + deTails, "₱ " + aMount));
        mAdapter.notifyDataSetChanged();

您正在创建fragment类的新实例并调用
insertItem()
。您需要获取当前实例并将数据从一个片段传递到第二个片段。当你调用insertItem()函数时,试试这个方法。如果我确实纠正了这两个片段中的通信,我将如何激活片段1中的insertItem()方法?如何在片段1中的recyclerview中添加项目,我需要在按下片段2中的fab时激活该方法??我能做什么?我遵循了链接,但我刚刚遇到了一个错误
无法将'com.example.admin.test2.Expense'转换为'com.example.admin.test2.MainScreen'
我不知道在该错误中该怎么办您正在创建片段类的新实例并调用
插入项()
。您需要获取当前实例并将数据从一个片段传递到第二个片段。当你调用insertItem()函数时,试试这个方法。如果我确实纠正了这两个片段中的通信,我将如何激活片段1中的insertItem()方法?如何在片段1中的recyclerview中添加项目,我需要在按下片段2中的fab时激活该方法??我能做什么?我遵循了链接,但出现了一个错误
无法将'com.example.admin.test2.Expense'转换为'com.example.admin.test2.MainScreen'
我不知道在该错误中该怎么办
package com.example.admin.test2;

public class ExampleItem {

    private int mImageResource;
    private String mlabel;
    private String mdetails;
    private String mamount;

    public ExampleItem(int imageResource, String label, String details, String amount)
    {
        mImageResource = imageResource;
        mlabel = label;
        mdetails = details;
        mamount = amount;
    }

    public int getmImageResource()
    {
        return mImageResource;
    }

    public String getMlabel() {
        return mlabel;
    }

    public String getMdetails() {
        return mdetails;
    }

    public String getMamount() {
        return mamount;
    }


}
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.admin.test2, PID: 30713
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.ArrayList.add(int, java.lang.Object)' on a null object reference
                      at com.example.admin.test2.MainScreen.insertItem(MainScreen.java:82)
                      at com.example.admin.test2.Expense$1.onClick(Expense.java:101)
                      at android.view.View.performClick(View.java:6897)
                      at android.view.View$PerformClick.run(View.java:26101)
                      at android.os.Handler.handleCallback(Handler.java:789)
                      at android.os.Handler.dispatchMessage(Handler.java:98)
                      at android.os.Looper.loop(Looper.java:164)
                      at android.app.ActivityThread.main(ActivityThread.java:6944)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
mExampleList.add(0, new ExampleItem(R.drawable.food, "Food & Drink", "" + deTails, "₱ " + aMount));
        mAdapter.notifyDataSetChanged();