如何在android eclipse中使用Recyclerview

时间:2015-08-18 10:40:16

标签: android android-recyclerview

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

  1. 我从此路径导入了recyclerview项目
  2. E:\ SOFTWARE \ ADT-束 - 窗口x86_64-20140702 \ ADT-束 - 窗口x86_64-20140702 \ SDK \额外\机器人\支持\ V7 \ recyclerview

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

    2. 然后因果关系,我在我的班级写了一个扩展片段的代码

    3. 公共类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。请参考下面的图片附件

      enter image description here

      请查看我的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文件夹中看到任何文件..任何人都可以共享recyclelerview项目

      请帮我解决这个问题

      提前感谢所有

4 个答案:

答案 0 :(得分:0)

您必须为RecyclerView显式设置LayoutManager:

mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity));

如果没有这个,RecyclerView将无法运行。

答案 1 :(得分:0)

新的android库需要JDK 8 设置JDK和JRE并尝试它将工作。!!!!

我有同样的问题,但在安装JDK 8之后,它已经解决了

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

Import cardview project from this path

E:\ SOFTWARE \ ADT-束 - 窗口x86_64-20140702 \ ADT-束 - 窗口x86_64-20140702 \ SDK \额外\机器人\支持\ V7 \ cardview

在您的Frgment类中:

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中

只需一个textview。