Android 选项卡布局中的recyclerview

Android 选项卡布局中的recyclerview,android,android-studio,android-recyclerview,android-tablayout,Android,Android Studio,Android Recyclerview,Android Tablayout,我目前正在进行选项卡布局中的recyclerview。 我犯了一个错误 尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)” 谁能告诉我出了什么错吗 listcontent.java文件 package com.example.a1407268.learn12; import android.content.Context; import android.cont

我目前正在进行选项卡布局中的recyclerview。 我犯了一个错误

尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)” 谁能告诉我出了什么错吗

listcontent.java文件

    package com.example.a1407268.learn12;
      import android.content.Context;
      import android.content.res.Resources;
      import android.content.res.TypedArray;
      import android.graphics.drawable.Drawable;
      import android.os.Bundle;
      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 android.widget.ImageView;
      import android.widget.TextView;

    public class Listcontent extends Fragment {
    private RecyclerView.Adapter adapter;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        RecyclerView recyclerview = (RecyclerView)                        
    inflater.inflate(R.layout.recycler_view, container, false);
        adapter = new MyAdapter(getContext());
        recyclerview.setAdapter(adapter);
        recyclerview.setHasFixedSize(true);
        recyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
        return recyclerview;
    }
}

    class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyrecyclerViewHolder>{
     final int LENGTH=18;
    String[] place;
    String[] des;
    Drawable[] pic;

    public MyAdapter(Context context) {
        Resources r = context.getResources();
        place = r.getStringArray(R.array.places);
        des = r.getStringArray(R.array.place_desc);
        TypedArray a = r.obtainTypedArray(R.array.place_avator);
        pic = new Drawable[a.length()];
        for (int i = 0; i < pic.length; i++) {
            pic[i] = a.getDrawable(i);
        }
        a.recycle();
    }

    @Override
    public MyrecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v 
    =LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tile, 
    parent,false);
        MyrecyclerViewHolder recyclerview = new MyrecyclerViewHolder(v);
        return recyclerview;
    }

    @Override
    public void onBindViewHolder(MyrecyclerViewHolder holder, int position) {
        holder.tx_des.setText(des[position]);
        holder.tx_title.setText(place[position]);
        holder.img.setImageDrawable(pic[position]);
    }

    @Override
    public int getItemCount() {
        return LENGTH;
    }


    public class MyrecyclerViewHolder extends RecyclerView.ViewHolder {

        ImageView img;
        TextView tx_des, tx_title;

        public MyrecyclerViewHolder(View view) {
            super(view);
            img = (ImageView) view.findViewById(R.id.image_view);
            tx_des = (TextView) view.findViewById(R.id.discription);
            tx_title = (TextView) view.findViewById(R.id.tittle);
        }
  }
}
package com.example.a1407268.learn12;
导入android.content.Context;
导入android.content.res.Resources;
导入android.content.res.TypedArray;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入android.support.v4.app.Fragment;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
公共类Listcontent扩展片段{
专用循环视图适配器;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
RecyclerView RecyclerView=(RecyclerView)
充气机。充气(右布局。回收器视图,容器,假);
adapter=newmyadapter(getContext());
recyclerview.setAdapter(适配器);
recyclerview.setHasFixedSize(true);
setLayoutManager(新的LinearLayoutManager(getActivity());
返回回收视图;
}
}
类MyAdapter扩展了RecyclerView.Adapter{
最终整数长度=18;
字符串[]位置;
字符串[]des;
可绘制[]图片;
公共MyAdapter(上下文){
Resources r=context.getResources();
place=r.getStringArray(r.array.places);
des=r.getStringArray(r.array.place\u desc);
TypedArray a=r.obtainTypedArray(r.array.place\u avator);
pic=新的可拉伸[a.长度()];
对于(int i=0;i
item_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="60dp">
<android.support.v7.widget.CardView
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/card_view"
>
 <RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     >
     <ImageView
         android:layout_width="100dp"
         android:layout_height="100dp"
         android:id="@+id/image_view"
         android:src="@drawable/a_avator"
         />
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/tittle"
         android:text="@string/item_title"
         android:textStyle="bold"
         android:textAppearance="?android:textAppearanceLarge"
         android:layout_toRightOf="@+id/image_view"
         />
     <TextView
         android:id="@+id/discription"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_below="@+id/tittle"
         android:layout_toRightOf="@+id/image_view"
         android:textAppearance="?attr/textAppearanceListItem"
         />

 </RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>

array.xml

    <resources>
    <string-array name="places">
    <item>Palais Garnie</item>
    <item>Piazza del Duomo</item>
    <item>Manhattan</item>
    <item>Senso-ji</item>
    <item>Sultan Ahmed Mosque</item>
    <item>Table Mountain</item>
   </string-array>
    <string-array name="place_desc">
    <item>The Palais Garnier which locates in Paris was built from 1861 for
    the Paris Opera.
    </item>
    <item>Piazza del Duomo the cathedral which locates in Florence.</item>
    <item>Manhattan is the district in New York City</item>
    <item>Senso-ji is the Shrine locates in Asakusa Tokyo</item>
    <item>Sultan Ahmed Mosque is mosque locates in Istabul, Turkey</item>
    <item>Table Mountain is mountain and park locates in Cape Town, South `       
Africa.</item>
</string-array>
<string-array name="place_details">
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad 
    minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo `             `       `consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu  `               `       fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa `        `qui officia
    deserunt mollit anim id est laborum.
    </item>
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad `         `        `minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo `          `       `consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu   `       fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa `      `qui officia
    deserunt mollit anim id est laborum.
    </item>
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad                                  `       `minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo `                           `       `consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu             `      `fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa `       `qui officia
    deserunt mollit anim id est laborum.
    </item>
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim `          `       `minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo `       `        `consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu `      `       `fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in cu`         `       `qui officia
    deserunt mollit anim id est laborum.
    </item>
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
    deserunt mollit anim id est laborum.
    </item>
    <item>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
    eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
    nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
    irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
    pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
    deserunt mollit anim id est laborum.
    </item>
    </string-array>


    <string-array name="place_locations">
    <item>8 Rue Scribe, 75009 Paris, France</item>
    <item>Piazza del Capitolo - 50122 Florence</item>
    <item>New York City</item>
    <item>2-3-1 Asakusa, Taitō-ku, Tokyo, Japan</item>
    <item>At Meydanı No:7, 34122 Fatih/İstanbul, Turkey</item>
    <item>Cape Town, South Africa</item>
</string-array>
<array name="place_avator">
    <item>@drawable/a_avator</item>
    <item>@drawable/b_avator</item>
    <item>@drawable/c_avator</item>
    <item>@drawable/d_avator</item>
    <item>@drawable/e_avator</item>
    <item>@drawable/f_avator</item>
</array>

</resources>

加尼宫
大教堂广场
曼哈顿
浅草寺
苏丹艾哈迈德清真寺
桌山
位于巴黎的加涅尔宫建于1861年,用于
巴黎歌剧院。
大教堂广场位于佛罗伦萨的大教堂。
曼哈顿是纽约市的一个区
神社位于东京浅草
苏丹艾哈迈德清真寺位于土耳其伊斯塔布尔
Table Mountain是一座山,公园位于开普敦南部
非洲。
Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do
临时性的劳动和生产许可证。乌特埃尼姆酒店
维尼亚姆酒店
nostrud实习ullamco laboris nisi ut aliquip ex ea commodo“consequeat”。酒后驾车
我的名字叫“乌拉·多洛”,是“乌拉”的意思
帕里图尔。不可因疏忽而导致死亡的例外情况,不可因疏忽而导致过失
这是我的劳动。
Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do
临时性的劳动和生产许可证。这是一个非常小的数字
nostrud实习ullamco laboris nisi ut aliquip ex ea commodo“consequeat”。酒后驾车
我的心在我心中,我的心在我心中,我的心在我心中,我的心在我心中
帕里图尔。不可因疏忽而导致死亡的例外情况,不可因疏忽而导致过失
这是我的劳动。
Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do
临时性的劳动和生产许可证。这是一个非常小的节日
nostrud实习ullamco laboris nisi ut aliquip ex ea commodo“consequeat”。酒后驾车
我的名字叫“乌拉·多洛”,是“乌拉”的意思
帕里图尔。不可因疏忽而导致死亡的例外情况,不可因疏忽而导致过失
这是我的劳动。
Lorem ipsum dolor sit amet,Concetetur Adipising Elite,sed do
临时性的劳动和生产许可证。这是一个非常小的节日
nostrud实习ullamco laboris nisi ut aliquip ex ea commodo“consequeat”。酒后驾车
我的名字叫irure dolor,它是一种无主的福吉亚语
帕里图尔。除非圣奥卡塔不冒失,必须以官方形式
这是我的劳动。
Lorem ipsum dolor sit amet,c
 <resources>
<string name="app_name">Learn12</string>
<string name="action_settings">Settings</string>
<string name="item_title">Palais Garnier</string>
<string name="item_desc">The Palais Garnier which locates in Paris was built         
</string>
<string name="detail_desc">Lorem ipsum dolor sit amet, consectetur   
 adipisicing elit, sed doeiusmod tempor incididunt ut labore et dolore magna `    `aliqua. Ut enim ad minim veniam, quisnostrud exercitation ullamco laboris         `    `nisi ut aliquip ex ea commodo   consequat. Duis auteirure dolor in `    `           ``    `reprehenderit in voluptate velit esse cillum dolore eu    fugiat nulla `     `      `pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa    `       `qui officia
    deserunt mollit anim id est laborum.
</string>
    <string name="detail_location">"8 Rue Scribe, 75009 Paris, France"`       `      `</string>
  </resources>
<android.support.v7.widget.RecyclerView      
 xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
@Override
public MyrecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v =  LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tile, parent, false);
    MyrecyclerViewHolder recyclerview = new MyrecyclerViewHolder(v);
    return recyclerview;
}
@Override
public MyrecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent,false);
    MyrecyclerViewHolder recyclerview = new MyrecyclerViewHolder(v);
    return recyclerview;
}