【问题标题】:How to use Recyclerview in android eclipse如何在 android eclipse 中使用 Recyclerview
【发布时间】:2015-08-18 20:30:22
【问题描述】:

请帮助我。我正在使用 Eclipse ADT 进行开发。我面临一个问题,我无法解决。我在这个 stackoverflow 中尝试了很多答案,但没有人给出正确的解决方案。让我解释一下我的问题

  1. 我从这个路径导入了 recyclerview 项目

E:\software\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v7\recyclerview

  1. 导入后,右键点击recyclerview项目-->属性-->android选项卡(从左窗格)--->勾选isLibrary复选框

  2. 然后因果地,我在我的类中编写了一个扩展片段的代码

公共类 FragmentTab1 扩展 Fragment {

View view;

RecyclerView mRecyclerView;

TimelineAdapter timelineAdapter;

// ListView listView;
// RecyclerView mRecyclerView;
// RecyclerView.LayoutManager mLayoutManager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // Get the view from fragmenttab1.xml
    try {
        view = inflater.inflate(R.layout.fragmenttab1, container, false);

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

        mRecyclerView.setHasFixedSize(false);
        mRecyclerView.setAdapter(new TimelineAdapter(getActivity()));
    } catch (Exception e) {
        // TODO: handle exception
        Log.e("FragOne error ", "" + e.getMessage());
        Log.e("FragOne error ", "" + e.getCause());
    }

    return view;
}

}

我已经编写了适配器类,并且 100% 确定没有错误。

当我看到布局 xml 文件时,我无法看到 recyclerview。请参考下面的图片附件

请看一下我写的xml文件

<FrameLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_grey"
tools:context=".LoginFollowUsers" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <android.support.v7.widget.RecyclerView
        android:id="@+id/my_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/letterimg"
        android:scrollbars="vertical" />
</LinearLayout>

在我从 support/v7/recyclerview 导入 recyclerview 项目后,我无法在 src 文件夹中看到任何文件.. 任何人都可以共享 recyclerview 项目

请帮我解决这个问题

提前感谢大家

【问题讨论】:

  • 当你运行它时会发生什么?
  • 我猜你错过了一步。请确保您已将 recyclerView 库添加到您的项目中。
  • 在我的代码中,我保留了错误日志。这里的错误来自日志 08-18 16:18:34.725: E/FragOne 错误(23243): Binary XML file line #16: Error inflating class android.support.v7.widget.RecyclerView 08-18 16:18 :34.725:E/FragOne 错误(23243):java.lang.ClassNotFoundException:在路径上找不到类“android.support.v7.widget.RecyclerView”:DexPathList [[zip 文件“/data/app/com.androidbegin .pagertabstriptutorial-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.androidbegin.pagertabstriptutorial-1, /vendor/lib, /system/lib]]
  • 您是否已将 android-support-v7-recyclerview 项目作为库导入到您的项目中?
  • 查看此链接:stackoverflow.com/questions/26492345/… 希望对您有所帮助!

标签: android android-recyclerview


【解决方案1】:

你必须为 RecyclerView 显式设置 LayoutManager:

mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity));

没有这个 RecyclerView 将无法运行。

【讨论】:

  • 是的,我已经添加了现在运行应用程序时仍然出现同样的错误
【解决方案2】:

您需要 JDK 8 来获取新的 android 库 设置JDK和JRE并尝试它会工作.!!!!

我也遇到了同样的问题,但安装JDK 8 后问题解决了

【讨论】:

  • 对不起,安装 java8 后,我的 eclipse ADT 工具没有显示在 java 编译器选项卡中。你能告诉我该怎么做吗?
  • 它在首选项 -> java -> 编译器下
  • 是的,这里也没有显示 java 8 版本并右键单击项目 --> 属性 --> 左侧窗格 --> java 编译器也没有显示
  • 看到 java 文件夹在 C:\Program Files 和所有 jdk 1.6、1.7、1.8 中
  • 是的,它在那里.. C:\Program Files\Java\jdk1.8.0_51 我还在环境设置中添加了 java bin 路径...
【解决方案3】:

您应该将recylerView 库添加到您的项目中。 在项目资源管理器中右键单击您的项目 > 选择属性 > 在左窗格中导航到 android > 现在单击右窗格中的添加按钮 > 单击添加按钮后,您应该添加 recylerView 库。

您需要在定义recylerView时在您的java文件中添加以下代码。

mRecyclerView = (RecyclerView) view
            .findViewById(R.id.my_recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(
                getActivity()));
mRecyclerView.setItemAnimator(new DefaultItemAnimator());

【讨论】:

    【解决方案4】:

    您需要添加卡片视图以显示回收站视图项目。我正在发送示例代码。请尝试一次。

    Import cardview project from this path
    

    E:\software\adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\extras\android\support\v7\cardview

    在您的 Fragment 类中:

    RecyclerView recList = (RecyclerView) view.findViewById(R.id.cardList);
            recList.setHasFixedSize(true);
            LinearLayoutManager llm = new LinearLayoutManager(getActivity());
            llm.setOrientation(LinearLayoutManager.VERTICAL);
            recList.setLayoutManager(llm);
    
            ArrayList<MyBean> myListItems = new ArrayList<MyBean>();
            for (int i = 0; i < 5; i++) {
    
                myListItems.add(new MyBean("item:"+i));
            }
    
            MyRecycleAdapter  adapter = new MyRecycleAdapter(myListItems);
            recList.setAdapter(adapter);
    

    MyAdapter.class

    公共类 MyRecycleAdapter 扩展 RecyclerView.Adapter {

    private List<MyBean> myItemsList;
    
    public MyRecycleAdapter  (List<MyBean> myItemsList) {
        this.myItemsList = myItemsList;
    }
    
    @Override
    public int getItemCount() {
        return myItemsList.size();
    }
    
    @Override
    public void onBindViewHolder(MyViewHolder viewHolder, int i) {
    
        MyBean ci = myItemsList.get(i);
        MyViewHolder.id.setText("" + ci.getId());
    
    
    }
    
    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(
                R.layout.mycardview, viewGroup, false);
    
        return new MyViewHolder(itemView);
    }
    
    public static class MyViewHolder extends RecyclerView.ViewHolder {
    
        protected TextView id;
    
        public MyViewHolder(View v) {
            super(v);
            id = (TextView) v.findViewById(R.id.textView1);
    
        }
    }
    

    }

    在你的 mycardview.xml 中

    只取一个文本视图。

    【讨论】:

    • 抱歉朋友再次收到此错误 08-18 17:30:10.651: E/FragOne 错误(2569): Binary XML file line #16: Error inflating class android.support.v7.widget。 RecyclerView 08-18 17:30:10.651:E/FragOne 错误(2569):java.lang.ClassNotFoundException:在路径上找不到类“android.support.v7.widget.RecyclerView”:DexPathList [[zip 文件“/ data/app/com.androidbegin.pagertabstriptutorial-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.androidbegin.pagertabstriptutorial-1, /vendor/lib, /system/lib]]
    • 您能否检查您的支持库是否已更新到最新版本.. com.android.support:support-v4: 和 com.android.support:recyclerview-v7
    • schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/yellow" android:orientation="vertical" >
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多