java.lang.ClassCastException:android.widget.RelativeLayout不能强制转换为android.support.v7.widget.RecyclerView

java.lang.ClassCastException:android.widget.RelativeLayout不能强制转换为android.support.v7.widget.RecyclerView,android,android-recyclerview,onclicklistener,classcastexception,android-logcat,Android,Android Recyclerview,Onclicklistener,Classcastexception,Android Logcat,每当用户单击我的RecyclerView项目时,我都会尝试启动一个新活动。这就是我的活动的外观,其中我的日志显示了错误 package com.example.nikit.phyprac4.ui; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayou

每当用户单击我的RecyclerView项目时,我都会尝试启动一个新活动。这就是我的活动的外观,其中我的日志显示了错误

package com.example.nikit.phyprac4.ui;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView;

import com.example.nikit.phyprac4.R;
import com.example.nikit.phyprac4.adapter.ListAdapter;
import com.example.nikit.phyprac4.model.ListData;
import com.example.nikit.phyprac4.model.ListItem;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity  {




    private RecyclerView recyclerView;
    private ListAdapter listAdapter;
private ArrayList myData;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myData=(ArrayList) ListData.getListData();
        recyclerView=(RecyclerView)findViewById(R.id.ReList);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        listAdapter=new ListAdapter(myData,this);
        recyclerView.setAdapter(listAdapter);

    }


}
activity_main.xml

<?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:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context="com.example.nikit.phyprac4.ui.MainActivity">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/ReList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

    </android.support.v7.widget.RecyclerView>
</RelativeLayout>
请也看看我的适配器

package com.example.nikit.phyprac4.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.nikit.phyprac4.R;
import com.example.nikit.phyprac4.model.ListItem;
import com.example.nikit.phyprac4.ui.FirstActivity;
import com.example.nikit.phyprac4.ui.MainActivity;
import com.example.nikit.phyprac4.ui.SecondActivity;

import java.util.List;

/**
 * Created by nikit on 11/3/17.
 */

public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ListHolder> {
    private List<ListItem> ListData;
    private LayoutInflater inflater;
    private  Context context;
    //private Button load;




    public ListAdapter(List<ListItem>ListData, Context c)
    {
        this.inflater=LayoutInflater.from(c);
        this.ListData=ListData;
    }
    @Override
    public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=inflater.inflate(R.layout.list_item,parent,false);
        return new ListHolder(view);
    }

    @Override
    public void onBindViewHolder(ListHolder holder, int position) {
        ListItem item=ListData.get(position);
        holder.title.setText(item.getTitle());
        holder.icon.setImageResource(item.getImageResId());

    }

    @Override
    public int getItemCount() {
        return ListData.size();
    }

    class ListHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        private TextView title;
        private ImageView icon;
        private View container;


        public ListHolder(View itemView) {
            super(itemView);
            title=(TextView)itemView.findViewById(R.id.lbl_item_text);
            icon=(ImageView)itemView.findViewById(R.id.im_item_icon);
            container=itemView.findViewById(R.id.cont_item_root);
            context = itemView.getContext();
            //load=(Button)itemView.findViewById(R.id.btn_card_load);
            container.setOnClickListener(this);


        }

        @Override
        public void onClick(View v) {
            if(v.getId()==R.id.cont_item_root)
            {
                final Intent intent;
                switch (getAdapterPosition()){
                    case 0:
                        intent =  new Intent(context, FirstActivity.class);
                        break;

                    case 1:
                        intent =  new Intent(context, SecondActivity.class);
                        break;

                    default:
                        intent =  new Intent(context, MainActivity.class);
                        break;
                }
                context.startActivity(intent);
            }

        }
    }

}
只要FirstActivity和SecondActivity为空,应用程序就可以正常工作,但一旦我在其中放入文本视图,应用程序就会崩溃
请帮帮我。我是一名业余开发人员。

评论这一行myData=ArrayList ListData.getListData;
在MainActivity中解决了这个问题,当然在list adapter中,我们将传递ListData.getListData而不是myData

show your activity\u main。xml@shmakova我已经编辑了代码并添加了activity_main.xml,请看一看
package com.example.nikit.phyprac4.adapter;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.nikit.phyprac4.R;
import com.example.nikit.phyprac4.model.ListItem;
import com.example.nikit.phyprac4.ui.FirstActivity;
import com.example.nikit.phyprac4.ui.MainActivity;
import com.example.nikit.phyprac4.ui.SecondActivity;

import java.util.List;

/**
 * Created by nikit on 11/3/17.
 */

public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ListHolder> {
    private List<ListItem> ListData;
    private LayoutInflater inflater;
    private  Context context;
    //private Button load;




    public ListAdapter(List<ListItem>ListData, Context c)
    {
        this.inflater=LayoutInflater.from(c);
        this.ListData=ListData;
    }
    @Override
    public ListHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view=inflater.inflate(R.layout.list_item,parent,false);
        return new ListHolder(view);
    }

    @Override
    public void onBindViewHolder(ListHolder holder, int position) {
        ListItem item=ListData.get(position);
        holder.title.setText(item.getTitle());
        holder.icon.setImageResource(item.getImageResId());

    }

    @Override
    public int getItemCount() {
        return ListData.size();
    }

    class ListHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        private TextView title;
        private ImageView icon;
        private View container;


        public ListHolder(View itemView) {
            super(itemView);
            title=(TextView)itemView.findViewById(R.id.lbl_item_text);
            icon=(ImageView)itemView.findViewById(R.id.im_item_icon);
            container=itemView.findViewById(R.id.cont_item_root);
            context = itemView.getContext();
            //load=(Button)itemView.findViewById(R.id.btn_card_load);
            container.setOnClickListener(this);


        }

        @Override
        public void onClick(View v) {
            if(v.getId()==R.id.cont_item_root)
            {
                final Intent intent;
                switch (getAdapterPosition()){
                    case 0:
                        intent =  new Intent(context, FirstActivity.class);
                        break;

                    case 1:
                        intent =  new Intent(context, SecondActivity.class);
                        break;

                    default:
                        intent =  new Intent(context, MainActivity.class);
                        break;
                }
                context.startActivity(intent);
            }

        }
    }

}