Android RecyclerView空指针异常。尝试在空对象引用上调用虚拟方法RecyclerView.setLayoutManager

Android RecyclerView空指针异常。尝试在空对象引用上调用虚拟方法RecyclerView.setLayoutManager,android,android-layout,android-recyclerview,android-adapter,Android,Android Layout,Android Recyclerview,Android Adapter,我认为问题在于其中一个RecyclerView transactions\u list\u view对象未包含在activity\u main.xml中,而是嵌套在另一个RecyclerView groups\u list\u视图中。这两个都包括在下面 错误: 03-22:04:51.433 15921-15921/com.example.android.myapplication E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.example.andr

我认为问题在于其中一个RecyclerView transactions\u list\u view对象未包含在activity\u main.xml中,而是嵌套在另一个RecyclerView groups\u list\u视图中。这两个都包括在下面

错误:

03-22:04:51.433 15921-15921/com.example.android.myapplication E/AndroidRuntime:FATAL EXCEPTION:main 进程:com.example.android.myapplication,PID:15921 java.lang.RuntimeException:无法启动活动组件信息{com.example.android.myapplication/com.example.android.myapplication.MainActivity}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.support.v7.widget.RecyclerView.setLayoutManagerandroid.support.v7.widget.RecyclerView$LayoutManager” 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2442 在android.app.ActivityThread.handleLaunchActivityActivityRead.java:2502 访问$900ActivityThread.java:167 在android.app.ActivityThread$H.handleMessageActivityThread.java:1361 位于android.os.Handler.dispatchMessageHandler.java:102 在android.os.Looper.Looper.java:148 在android.app.ActivityThread.mainActivityThread.java:5469 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:770 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:660 原因:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“void android.support.v7.widget.RecyclerView.setLayoutManagerandroid.support.v7.widget.RecyclerView$LayoutManager” 位于com.example.android.myapplication.MainActivity.onCreateMainActivity.java:37 在android.app.Activity.performCreateActivity.java:6553 在android.app.Instrumentation.callActivityOnCreateInstrumentation.java:1108 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2395 在android.app.ActivityThread.handleLaunchActivityActivityRead.java:2502 访问$900ActivityThread.java:167 在android.app.ActivityThread$H.handleMessageActivityThread.java:1361 位于android.os.Handler.dispatchMessageHandler.java:102 在android.os.Looper.Looper.java:148 在android.app.ActivityThread.mainActivityThread.java:5469 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:770 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:660

迈 nActivity.java

activity_main.xml

TransactionListAdapter.java

groups\u list\u item.xml

事务\u列表\u item.xml


在activity\u main.xml文件中没有id事务\u列表\u视图-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/all_groups_list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </android.support.v7.widget.RecyclerView>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/transactions_list_view"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/all_groups_list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

是的,我知道这将工作,但这不是我想显示它的方式。我想在另一个布局文件中创建一个RecyclerView。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.android.myapplication.MainActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/all_groups_list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>
</FrameLayout>
package com.example.android.myapplication;

import android.content.Context;
import android.database.Cursor;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.android.myapplication.data.GroupsContract;
import com.example.android.myapplication.data.TransactionsContract;

/**
 * Created by max on 3/22/2017.
 */

public class TransactionsListAdapter extends RecyclerView.Adapter<TransactionsListAdapter.TransactionsViewHolder> {

    private Context mContext;
    private Cursor mCursor;

    public TransactionsListAdapter(Context context, Cursor cursor) {
        this.mContext = context;
        this.mCursor = cursor;
    }

    @Override
    public TransactionsListAdapter.TransactionsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

        LayoutInflater inflater = LayoutInflater.from(mContext);
        View view = inflater.inflate(R.layout.transactions_list_item, parent, false);
        return new TransactionsViewHolder(view);
    }

    @Override
    public void onBindViewHolder(TransactionsListAdapter.TransactionsViewHolder holder, int position) {
        if(!mCursor.moveToPosition(position))
            return;
        String transactionName = mCursor.getString(mCursor.getColumnIndex(TransactionsContract.TransactionsEntry.COLUMN_NAME));
        String transactionAmount = mCursor.getString(mCursor.getColumnIndex(TransactionsContract.TransactionsEntry.COLUMN_AMOUNT));
        String transactiongivenortaken = mCursor.getString(mCursor.getColumnIndex(TransactionsContract.TransactionsEntry.COLUMN_GIVEN_TAKEN));

        holder.transactionNameTextView.setText(transactionName);
        holder.transactionAmountTextView.setText(transactionAmount);
        holder.transactionGivenortakenTextView.setText(transactiongivenortaken);
    }

    @Override
    public int getItemCount() {
        return mCursor.getCount();
    }

    class TransactionsViewHolder extends RecyclerView.ViewHolder{

        TextView transactionNameTextView;
        TextView transactionAmountTextView;
        TextView transactionGivenortakenTextView;

        public TransactionsViewHolder(View itemView){
            super(itemView);
            transactionNameTextView = (TextView) itemView.findViewById(R.id.transactions_list_name);
            transactionAmountTextView = (TextView) itemView.findViewById(R.id.transactions_list_amount);
            transactionGivenortakenTextView = (TextView) itemView.findViewById(R.id.transactions_list_givenortaken);
        }
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:layout_margin="16dp"
    android:background="#fff"
    android:elevation="4dp">

    <TextView
        android:id="@+id/group_name_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3sp"
        android:text="Group_Name"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/group_type_text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Group_Type"
        android:textSize="20sp"
        android:layout_margin="3sp"
        android:layout_alignBaseline="@id/group_name_text_view"
        android:layout_alignBottom="@+id/view"
        android:layout_alignParentEnd="true"
        android:textColor="@color/secondary_text"/>

    <View
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginLeft="2sp"
        android:layout_marginRight="2sp"
        android:background="@color/divider"
        android:layout_alignBottom="@+id/group_name_text_view"/>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/transactions_list_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignTop="@+id/view">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="3sp">
    <TextView
        android:id="@+id/transactions_list_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10sp"/>
    <TextView
        android:id="@+id/transactions_list_amount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10sp"/>
    <TextView
        android:id="@+id/transactions_list_givenortaken"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="10sp"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/all_groups_list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </android.support.v7.widget.RecyclerView>

    <android.support.v7.widget.RecyclerView
        android:id="@+id/transactions_list_view"
        android:layout_marginTop="20dp"
        android:layout_below="@+id/all_groups_list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>