Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >android:查看next选项卡时接收异常

android:查看next选项卡时接收异常
EN

Stack Overflow用户
提问于 2016-10-04 08:38:30
回答 1查看 114关注 0票数 1

我想在片段中添加回收视图,然后想在viewpager.So中添加片段--我遵循关于youtube.after compile..recyclerview的教程显示,但是当我转到下一个选项卡时,除了appear.Hope,你们可以帮助我解决这个问题。

误差

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.user.recyclerviewpagerfragment, PID: 3705
                  java.lang.ClassCastException: android.support.v7.widget.LinearLayoutCompat cannot be cast to android.support.v7.widget.RecyclerView
                      at com.example.user.recyclerviewpagerfragment.Fragments.DocumentaryFragment.onCreateView(DocumentaryFragment.java:30)
                      at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
                      at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
                      at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
                      at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1638)
                      at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:679)
                      at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:143)
                      at android.support.v4.view.ViewPager.populate(ViewPager.java:1240)
                      at android.support.v4.view.ViewPager.populate(ViewPager.java:1088)
                      at android.support.v4.view.ViewPager$3.run(ViewPager.java:275)
                      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
                      at android.view.Choreographer.doCallbacks(Choreographer.java:670)
                      at android.view.Choreographer.doFrame(Choreographer.java:603)
                      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5417)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
I/Process: Sending signal. PID: 3705 SIG: 9
Application terminated.

MainActivity.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.user.recyclerviewpagerfragment;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.example.user.recyclerviewpagerfragment.Fragments.CrimeFragment;
import com.example.user.recyclerviewpagerfragment.Fragments.DocumentaryFragment;
import com.example.user.recyclerviewpagerfragment.Fragments.DramaFragment;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        //initialize view pager.
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager_id);
        this.addPages(viewPager);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_id);
        //it gonna occupy the whole screen..
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.addOnTabSelectedListener(listener(viewPager));
    }

    // add all pages
    private void addPages(ViewPager pager){
        FragPagerAdapter adapter = new FragPagerAdapter(getSupportFragmentManager());
        adapter.addPage(new CrimeFragment());
        adapter.addPage(new DramaFragment());
        adapter.addPage(new DocumentaryFragment());

        //set adapter to pager
        pager.setAdapter(adapter);
    }

    private TabLayout.OnTabSelectedListener listener(final ViewPager pager){
        return new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
              pager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        };

    }

}

FragPagerAdapter.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.user.recyclerviewpagerfragment;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

/**
 * Created by User on 10/4/2016.
 */

public class FragPagerAdapter extends FragmentPagerAdapter{

    //create arraylist..where its gonna hol fragment.

    ArrayList<Fragment> pages = new ArrayList<>();

    public FragPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return pages.get(position);
    }

    @Override
    public int getCount() {
        return pages.size();
    }

    // add a page
    public void addPage(Fragment f){
        pages.add(f);
    }

    //set title for tab

    @Override
    public CharSequence getPageTitle(int position) {
        return pages.get(position).toString();
        //return super.getPageTitle(position);
    }
}

MyRecyclerAdapter.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.user.recyclerviewpagerfragment.Recycler;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import com.example.user.recyclerviewpagerfragment.R;

import java.util.ArrayList;

/**
 * Created by User on 10/4/2016.
 */

public class MyRecyclerAdapter extends RecyclerView.Adapter<MyViewHolder> {

    Context context;
    ArrayList<Movie> movies;

    public MyRecyclerAdapter(Context context, ArrayList<Movie> movies) {
        this.context = context;
        this.movies = movies;
    }

    //initialize holder.
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view  = LayoutInflater.from(parent.getContext()).inflate(R.layout.model,null);
        MyViewHolder holder =  new MyViewHolder(view);
        return holder;
        //return null;
    }


    //bind data to views
    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        holder.nameTxt.setText(movies.get(position).getImage());
        holder.img.setImageResource(movies.get(position).getImage());

        //listener
        holder.setItemClickListener(new ItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                Toast.makeText(context,movies.get(position).getName(),Toast.LENGTH_SHORT).show();
            }
        });
    }

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

MyViewHolder.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.user.recyclerviewpagerfragment.Recycler;

import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.user.recyclerviewpagerfragment.R;

/**
 * Created by User on 10/4/2016.
 */

public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

    ImageView img;
    TextView nameTxt;
    ItemClickListener itemClickListener;
    public MyViewHolder(View itemView) {
        super(itemView);

        nameTxt = (TextView) itemView.findViewById(R.id.nameTxt);
        img = (ImageView) itemView.findViewById(R.id.movieImage);

        //above...if want to make click on nameTxt,can change itemView to nameTxt
        itemView.setOnClickListener(this);
    }

    public void setItemClickListener(ItemClickListener itemClickListener){
        this.itemClickListener = itemClickListener;
    }

    @Override
    public void onClick(View view) {
        this.itemClickListener.onItemClick(view,getLayoutPosition());
    }
}

DocumentaryFragment.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.example.user.recyclerviewpagerfragment.Fragments;

import android.os.Bundle;
import android.support.annotation.Nullable;
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 com.example.user.recyclerviewpagerfragment.R;
import com.example.user.recyclerviewpagerfragment.Recycler.Movie;
import com.example.user.recyclerviewpagerfragment.Recycler.MyRecyclerAdapter;

import java.util.ArrayList;

/**
 * Created by User on 10/4/2016.
 */

public class DocumentaryFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        //call view
        View view = inflater.inflate(R.layout.documentary_fragment,null);
        //recyclerview
        RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.mRecyclerDocumentary);
        recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
        //set Adapter
        recyclerView.setAdapter(new MyRecyclerAdapter(this.getActivity(),getDocumentaryMovies()));
        return view;
        //return super.onCreateView(inflater, container, savedInstanceState);
    }

    private ArrayList<Movie> getDocumentaryMovies() {
        //collection of crime movies.
        ArrayList<Movie> movies = new ArrayList<>();
        //single movie
        Movie movie = new Movie("Crime:tank5",R.drawable.e);
        //add to collection..
        movies.add(movie);

        movie = new Movie("Crime:tank6",R.drawable.f);
        movies.add(movie);
        return movies;
        /*
        Movie movie = new Movie("tank1",R.drawable.a);
        movies.add(movie);

        Movie movie = new Movie("tank1",R.drawable.a);
        movies.add(movie);
        */
    }


    //set title for the fragment

    @Override
    public String toString() {
        return "Documentary";
    }
}

activity_main.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout 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:fitsSystemWindows="true"
        tools:context="com.example.user.recyclerviewpagerfragment.MainActivity">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

            <!-- add above for adding tablayout -->
            <android.support.design.widget.TabLayout
                android:id="@+id/tab_id"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

        </android.support.design.widget.AppBarLayout>

        <include layout="@layout/content_main" />

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            app:srcCompat="@android:drawable/ic_dialog_email" />

        <!-- add above for adding viewpager -->
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager_id"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.design.widget.CoordinatorLayout>

Documentary_fragment.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<android.support.v7.widget.LinearLayoutCompat
    android:id="@+id/mRecyclerDocumentary"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"></android.support.v7.widget.LinearLayoutCompat> </LinearLayout>

Model.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_margin="10dp"
    card_view:cardCornerRadius="10dp"
    card_view:cardElevation="10dp"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/movieImage"
            android:padding="10dp"
            android:src="@drawable/a"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Name"
            android:id="@+id/nameTxt"
            android:padding="10dp"
            android:textColor="@color/colorAccent"
            android:layout_below="@+id/movieImage"
            android:layout_alignParentLeft="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="this tanks is awsome no need to jurge it."
            android:id="@+id/descTxt"
            android:layout_below="@+id/nameTxt"
            android:layout_alignParentLeft="true"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="TV Show"
            android:id="@+id/posTxt"
            android:padding="10dp"
            android:layout_below="@id/movieImage"
            android:layout_alignParentRight="true"/>

        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/chk"
            android:layout_alignParentRight="true"/>
    </RelativeLayout>
</android.support.v7.widget.CardView>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 09:26:11

错误是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.lang.ClassCastException: android.support.v7.widget.LinearLayoutCompat cannot be cast to android.support.v7.widget.RecyclerView
                  at com.example.user.recyclerviewpagerfragment.Fragments.DocumentaryFragment.onCreateView(DocumentaryFragment.java:30)

正如它说的问题在DocumentaryFragment中,您正在将一个LinearLayout转换为一个ReciclerView,您应该为我们提供这个片段。希望它有帮助,我想评论,但我还没有必要条件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39857593

复制
相关文章
display属性值有哪些_验证控件display属性
<html> <head> <meta charset=”utf-8″> <title>W3Cschool教程(w3cschool.cn)</title> <style> #main { width: 70px; height: 300px; border: 1px solid #c3c3c3; display: -webkit-flex; display: flex; /* 设置flex布局*/ -webkit-flex-wrap: wrap; flex-wrap: wrap;/*换行*/ -webkit-align-content: center; align-content: center; /*垂直对齐*/ }
全栈程序员站长
2022/11/01
2.2K0
display属性值有哪些_验证控件display属性
有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值?
前几天在Python钻石交流群有个叫【进击的python】的粉丝问了一个Python基础的问题,这里拿出来给大家分享下,一起学习下。
前端皮皮
2022/08/17
1.2K0
有什么方法可以快速筛选出 pitch 中的值 在0.2 > x > -0.2 的值?
Spring Boot 定义接口的方法是否可以声明为 private?
估计很少有人会把接口方法定义成 private 的吧?那我们不禁要问,如果非要定义成 private 的方法,那能运行起来吗?
江南一点雨
2021/04/02
6040
Java比较两个对象中属性值是否相同【使用反射实现】
在工作中,有些场景下,我们需要对比两个完全一样对象的属性值是否相等。比如接口替换的时候,需要比较新老接口在相同情况下返回的数据是否相同。这个时候,我们怎么处理呢?这里凯哥就使用Java的反射类实现。
凯哥Java
2022/12/16
3.6K0
用画小狗的方法来解释Java中的值传递
答案是 A旺财,changeName方法并没有把myDog的名称改了。如果你答错了,没关系,我要开始画小狗了,画完你就明白了;如果你答对了,但不太明白其中的原因,那我画的小狗也肯定能帮到你。
凯哥Java
2019/07/01
8900
【javascript】hasOwnProperty()方法检查对象是否有该属性
hasOwnProperty() 只会检查对象的自有属性,对象原形上的属性其不会检测;但是对于原型对象本身来说,这些原型上的属性又是原型对象的自有属性,所以原形对象也可以使用hasOwnProperty()检测自己的自有属性
唯一Chat
2022/09/27
1.1K0
使用JSON Schema来验证接口数据
该文介绍了如何使用JSON Schema来验证接口数据。JSON Schema是一种用于定义和验证JSON数据结构的工具。它可以定义一个JSON对象,并指定该对象中哪些字段是必须的,哪些字段是可选的,以及字段的类型和约束。使用JSON Schema可以方便地验证JSON数据是否符合预期的格式,并确保数据中的字段类型和约束符合要求。该文还介绍了如何使用Dojo Toolkit中的JSON Schema验证模块来验证JSON数据,并提供了相关的示例代码。
IMWeb前端团队
2017/12/29
2.3K0
使用JSON Schema来验证接口数据
最近在做一些关于JSON Schema的基建,JSON Schema可以描述一个JSON结构,那么反过来他也可以来验证一个JSON是否符合期望的格式,于是我想到之前lqlong 之前的一篇 《数据字段防卫探索》 发现JSON Schema可以做这个事情。
IMWeb前端团队
2019/12/04
2.1K0
Java 中如何判断数组中是否包含某个值?
public static boolean useLoop(String[] arr, String targetValue) { for(String s: arr){ if(s.equals(targetValue)) return true; } return false; }
水货程序员
2018/11/13
5.9K0
java9-可以在interface中定义私有方法了
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法。只允许我们定义public访问权限的方法、抽象方法或静态方法。但是从Java 9 开始,Interface 接口中允许定义私有方法和私有静态方法。下面我们就来为大家介绍其语法规则,和为什么要有这样的设计。
字母哥博客
2020/10/14
1.7K0
如何检查 Java 数组中是否包含某个值 ?
在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题。比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下。
用户7886150
2021/04/28
9.1K0
Java之判断数组中是否包含某个值
方式一:使用Arrays.asList(str).contains() public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).contains(targetValue); } 示例如下: String[] str={"学历教育","专业教育","通识教育","其它在职训"} ; if (!Arrays.asList(st
IT工作者
2022/02/12
4.2K0
Java|方法的定义(形参、实参、返回值)
方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。
算法与编程之美
2020/08/06
1.8K0
JNI:取得Java属性和设置Java属性值
可以使用GetObjectField来获取数组类型的属性。不过JNI提供了一系列方法获取数组的属性,后续介绍。
BUG弄潮儿
2022/03/08
2K0
一种自动的将自定义类序列化为JSON的方法
最近因为项目需求,需要将一些自定义的类序列化为JSON,网上有很多好用的第三方序列化工具,但都只能自动序列化一些基本类型,如NSNumber,NSString与NSDictionary这种,没有一种第三方工具提供直接将自定义类序列化的方法(至少据我所知:),而对于这种序列化自定义的类的需求,网上能查到的方法只有将自定义的类手动的转存为一个NSDictionary,然后再使用第三方工具来序列化。例如对于一个类Foo,有如下定义: @interface Foo : NSObject {   NSStri
阿新
2018/04/12
1.1K0
jquery判断数组中是否包含某个元素的值_java判断元素是否在数组中
如果arry数组里面存在”C#” 这个字符串则返回该字符串的数组下标,否则返回(不包含在数组中) -1
全栈程序员站长
2022/11/02
5.8K0
java 根据list对象中的一个属性值是否一致去重的简单做法
创建一个临时的数组 筛选要去重的数组,把对象是不重复的放到临时创建的数组中 判断这个去重的数组在不重复的数组中是否存在 再获得这个数组 一个foreach/for一定可以用stream来处理,去重也可以用lambda表达式来做 List<ApprovalChainInfoData> temp = new ArrayList<>(); approvalChainInfoData = approvalChainInfoData1.stream().filter(i -> {
gfu
2019/11/14
4.2K0
Java中interface属性和实例方法
A.接口Nameable无法编译。B.类Employee无法编译。C.类HR无法编译。D.输出John Doe。
FunTester
2020/02/17
2K0
【源头活水】一种高效评估预训练模型是否适合当前任务的方法
“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
马上科普尚尚
2021/04/07
8220
【源头活水】一种高效评估预训练模型是否适合当前任务的方法
Java中抽象类和接口中可以有构造方法吗?
Java中抽象类和接口中可以有构造方法吗? -----------------------------------------------------------------------------
黑泽君
2018/10/11
2K0

相似问题

在AWS EC2免费层帐户上安装码头

13

AWS免费层上的Windows和Linux同时EC2实例

12

如何在AWS免费层上安装Laravel?

20

EC2的AWS免费层限制

16

无法在AWS免费层中启动第二个实例实例

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文