Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RecyclerView Adaper没有膨胀我的布局?_Android_Android Recyclerview - Fatal编程技术网

Android RecyclerView Adaper没有膨胀我的布局?

Android RecyclerView Adaper没有膨胀我的布局?,android,android-recyclerview,Android,Android Recyclerview,我正在使用RecyclerviewAdapter显示一些数据。这是我的第一次,我真的遇到了麻烦。在我的移动设备上,RecyclerView变为空 能否RecyclerView.Adapter使用图像膨胀视图 这是sensor_data_listitem.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="ht

我正在使用
Recyclerview
Adapter
显示一些数据。这是我的第一次,我真的遇到了麻烦。在我的移动设备上,
RecyclerView
变为空

能否
RecyclerView.Adapter
使用图像膨胀视图

这是sensor_data_listitem.xml

                    <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout
            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="wrap_content"
            android:background="#f3e5f5">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center"
                android:orientation="vertical">
                <View
                    android:id="@+id/space1"
                    android:layout_width="match_parent"
                    android:layout_height="6dp"
                    android:layout_weight="1"
                    android:background="#ce93d8" />
                <android.support.v7.widget.GridLayout
                    android:background="#f3e5f5"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    app:columnCount="3"
                    app:rowCount="5">
                    <ImageView
                        android:id="@+id/list_item_icon"
                        android:layout_width="0dp"
                        android:adjustViewBounds="true"
                        android:maxHeight="@dimen/farm_icon_height"
                        android:maxWidth="@dimen/farm_icon_width"
                        android:scaleType="fitCenter"
                        app:layout_columnWeight="1"
                        app:layout_gravity="fill_horizontal"
                        app:layout_rowSpan="5"
                        tools:src="@drawable/fish" />
                    <TextView
                        android:id="@+id/farm_name"
                        android:layout_width="0dp"
                        android:fontFamily="sans-serif-light"
                        android:gravity="center_horizontal"
                        android:textColor="@color/colorPrimary"
                        android:textSize="16sp"
                        app:layout_columnWeight="1"
                        app:layout_gravity="fill_horizontal"
                        tools:text="Fish Farm 1" />
                    <TextView
                        android:id="@+id/list_item_date"
                        android:layout_width="0dp"
                        android:fontFamily="sans-serif-light"
                        android:gravity="center_horizontal"
                        android:textColor="@color/colorPrimary"
                        android:textSize="16sp"
                        app:layout_columnWeight="1"
                        app:layout_gravity="fill_horizontal"
                        tools:text="Today 27, April" />

                    <include
                        layout="@layout/sensor_items_layout"
                        app:layout_columnWeight="1"
                        app:layout_columnSpan="2"
                        />
                </android.support.v7.widget.GridLayout>

                <View
                    android:id="@+id/space2"
                    android:layout_width="match_parent"
                    android:layout_height="6dp"
                    android:layout_weight="1"
                    android:background="#ce93d8" />
               </LinearLayout>
             </LinearLayout>

include布局也很简单

                <?xml version="1.0" encoding="utf-8"?>
            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                xmlns:tools="http://schemas.android.com/tools">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal">
                    <ImageView
                        android:id="@+id/oxygen_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"
                        android:maxHeight="@dimen/dot_icon_width"
                        android:maxWidth="@dimen/dot_icon_width"
                        tools:src="@drawable/dot_icon" />

                    <TextView
                        android:id="@+id/oxygen_label"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="16sp"
                        android:text="DO" />

                    <TextView
                        android:id="@+id/oxygen_value"
                        android:paddingLeft="40dp"
                        android:layout_marginLeft="10dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="20sp"
                        android:text="10" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal">
                    <ImageView
                        android:id="@+id/temp_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"
                        android:maxHeight="@dimen/dot_icon_width"
                        android:maxWidth="@dimen/dot_icon_width"
                        tools:src="@drawable/dot_icon" />

                    <TextView
                        android:id="@+id/temp_label"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="16sp"
                        android:text="Temp" />

                    <TextView
                        android:id="@+id/temp_value"
                        android:paddingLeft="20dp"
                        android:layout_marginLeft="10dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="20sp"
                        android:text="10" />

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal">
                    <ImageView
                        android:id="@+id/ph_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"
                        android:maxHeight="@dimen/dot_icon_width"
                        android:maxWidth="@dimen/dot_icon_width"
                        tools:src="@drawable/dot_icon" />

                    <TextView
                        android:id="@+id/ph_label"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="16sp"
                        android:text="PH" />

                    <TextView
                        android:id="@+id/ph_value"
                        android:paddingLeft="40dp"
                        android:layout_marginLeft="10dp"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:fontFamily="sans-serif-light"
                        android:textColor="@color/secondaryTextColor"
                        android:textSize="20sp"
                        android:text="10" />
                </LinearLayout>
            </LinearLayout>

我的适配器代码是

            package fishfarm.gebeya.fishfarm;

            import android.database.Cursor;
            import android.support.v7.widget.RecyclerView;
            import android.util.Log;
            import android.view.LayoutInflater;
            import android.view.View;
            import android.view.ViewGroup;
            import android.widget.ImageView;
            import android.widget.TextView;

            import java.util.List;

            import fishfarm.gebeya.fishfarm.data.FishFarmContract;
            import fishfarm.gebeya.fishfarm.model.SensorData;

            /**
             * Created by Gere on 5/7/2017.
             */

            public class FishFarmAdapter  extends
                    RecyclerView.Adapter<FishFarmAdapter.FishFaemViewHolder>
             {

                private List<SensorData> mSensorDatas;
                final private FishFarmAdapterClickListner mClickHandler;
                final private View mEmptyView;

                public FishFarmAdapter( List<SensorData> sensorDatas,
                                       FishFarmAdapterClickListner 
                                      mClickHandler,
                                       View mEmptyView) {

                    mSensorDatas = sensorDatas;
                    this.mClickHandler = mClickHandler;
                    this.mEmptyView = mEmptyView;
                }

                @Override
                public FishFaemViewHolder onCreateViewHolder(ViewGroup 
                    viewGroup,
                                                             int viewType) {
                    if (viewGroup instanceof RecyclerView) {

                        View view = 


         LayoutInflater.from(viewGroup.getContext()).inflate(
                                R.layout.sensor_data_list_card, viewGroup, 
               false);

                        view.setFocusable(true);
                        return new FishFaemViewHolder(view);
                    }
                    else {
                        throw new RuntimeException("Not bound to 
                         RecyclerView");
                    }
                }

                @Override
                public void onBindViewHolder(FishFaemViewHolder 
              fishFaemViewHolder,
                                             int position) {
                    Log.i("ONBIND", String.valueOf(mSensorDatas.size()));
                    SensorData sensorData = mSensorDatas.get(position);
                    long SensorId = sensorData.getSensorID();
                    int defaultImage;

                    float Ph = sensorData.getPH();
                    fishFaemViewHolder.phView.setText(String.valueOf(Ph));

                    float temp = sensorData.getTemprature();

        fishFaemViewHolder.tempView.setText(String.valueOf(temp));

                    float DO = sensorData.getOxygen();
                    fishFaemViewHolder.tempView.setText(String.valueOf(DO));

                    long date = sensorData.getDate();

          fishFaemViewHolder.mDateView.setText(String.valueOf(date));
                   // ViewCompat.setTransitionName(
                            //fishFaemViewHolder.mIconView, "iconView" + 
           position);
                }

                @Override
                public int getItemCount() {
                    Log.i("COUNT", String.valueOf(mSensorDatas.size()));
                    if ( null == mSensorDatas) return 0;
                    return mSensorDatas.size();
                }
                public void swapList(List<SensorData> newSensorDatas) {
                    mSensorDatas = newSensorDatas;
                    notifyDataSetChanged();
                    mEmptyView.setVisibility(getItemCount() == 0 ?
                            View.VISIBLE : View.GONE);
                }

                public List<SensorData> getList() {
                    return mSensorDatas;
                }

                public class FishFaemViewHolder extends 
                   RecyclerView.ViewHolder
                        implements View.OnClickListener {
                   // public final ImageView mIconView;
                    public final TextView mDateView;
                    public final TextView tempView;
                    public final TextView phView;

                    public FishFaemViewHolder(View itemView) {
                        super(itemView);
                       // mIconView = (ImageView) 
                      itemView.findViewById(R.id.list_item_icon);
                        mDateView = (TextView) 
                        itemView.findViewById(R.id.list_item_date);
                        tempView = (TextView) 
                       itemView.findViewById(R.id.temp_value);
                        phView = (TextView) 
                      itemView.findViewById(R.id.ph_value);
                        itemView.setOnClickListener(this);
                    }

                    @Override
                    public void onClick(View v) {
                        int adapterPosition = getAdapterPosition();
                        SensorData sensorData = 
                       mSensorDatas.get(adapterPosition);

                        mClickHandler.onClick(sensorData,
                                this);
                    }
                }

                public static interface FishFarmAdapterClickListner {

                    void onClick(SensorData date, FishFaemViewHolder vh);
                }

             }



                public class SensorDataViewActivity extends
                    AppCompatActivity
            {


                FishFarmDataSource dataSource;
                RecyclerView mRecyclerView;
                private FishFarmAdapter mFishFarmAdapter;
                private View emptyText;


                private static final int PERCENTAGE_TO_ANIMATE_AVATAR = 20;
                private boolean mIsAvatarShown = true;

                private ImageView mProfileImage;
                private int mMaxScrollSize;

                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.farm_farm_data);

                    initData();
                }

                private void initData() {

                    List<SensorData> sensorDataList = new ArrayList<>();
                    for (int i=0; i<10; i++)
                    {
                        SensorData sensorData = new SensorData();
                        sensorData.setSensorID(1);
                        sensorData.setOxygen(15);
                        sensorData.setPH(1);
                        sensorData.setTemprature(15);

                sensorData.setDescribition("hhhhhhsdsahfksflsdfdsfdskjfsdfj" +
                                " fsdfdsfk");
                        sensorData.setConductivity("high");
                        sensorData.setFeeding("Good");
                        sensorData.setDate(13444);
                        SensorLocation sensorLocation = new 
                         SensorLocation();
                        sensorLocation.setLocation_name("#code1234");
                        sensorData.setFarmLocation(sensorLocation);
                        sensorDataList.add(sensorData);

                    }
                    mRecyclerView = (RecyclerView) 
                      findViewById(R.id.list_fish_farm);
                    mRecyclerView.setLayoutManager(new 
                    LinearLayoutManager(this));
                    emptyText = findViewById(R.id.text_empty);
                    mRecyclerView.setHasFixedSize(true);

                    mFishFarmAdapter = new FishFarmAdapter(sensorDataList, 
                 new FishFarmAdapter.FishFarmAdapterClickListner() {
                        @Override
                        public void onClick(SensorData date, 
                 FishFarmAdapter.FishFaemViewHolder vh) {

                        }
                    },emptyText);



                    mRecyclerView.setAdapter(mFishFarmAdapter);
                }
package fishfarm.gebeya.fishfarm;
导入android.database.Cursor;
导入android.support.v7.widget.RecyclerView;
导入android.util.Log;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入java.util.List;
导入fishfarm.gebeya.fishfarm.data.FishFarmContract;
导入fishfarm.gebeya.fishfarm.model.SensorData;
/**
*由Gere于2017年5月7日创建。
*/
公共类FishFarmAdapter扩展
RecyclerView.适配器
{
私有列表传感器数据;
最终私有FishFarmAdapterClickListner McClickHandler;
最终私有视图mEmptyView;
公共FishFarmAdapter(列出传感器数据、,
FishFarmAdapterClickListner
麦克利克汉德勒,
视图(mEmptyView){
mSensorDatas=传感器数据;
this.mClickHandler=mClickHandler;
this.mEmptyView=mEmptyView;
}
@凌驾
public FishFaemViewHolder onCreateViewHolder(视图组
查看组,
int视图类型){
if(回收视图的视图组实例){
视图=
LayoutInflater.from(viewGroup.getContext()).flate(
R.layout.sensor\u data\u list\u卡、视图组、,
假);
view.setFocusable(true);
返回新的FishFaemViewHolder(视图);
}
否则{
抛出新的RuntimeException(“未绑定到
回收视图);
}
}
@凌驾
BindViewHolder上的公共无效(FishFaemViewHolder
fishFaemViewHolder,
内部位置){
Log.i(“ONBIND”,String.valueOf(mSensorDatas.size());
SensorData SensorData=mSensorDatas.get(位置);
long SensorId=sensorData.getSensorID();
int-defaultImage;
float Ph=传感器数据。getPH();
fishFaemViewHolder.phView.setText(String.valueOf(Ph));
浮点温度=传感器数据。GetTemperature();
fishFaemViewHolder.tempView.setText(String.valueOf(temp));
float DO=sensorData.getOxygen();
fishFaemViewHolder.tempView.setText(String.valueOf(DO));
long date=sensorData.getDate();
fishFaemViewHolder.mDateView.setText(String.valueOf(date));
//ViewCompat.setTransitionName(
//fishFaemViewHolder.mIconView,“iconView”+
职位);
}
@凌驾
public int getItemCount(){
Log.i(“COUNT”,String.valueOf(mSensorDatas.size());
if(null==mSensorDatas)返回0;
返回mSensorDatas.size();
}
公共无效交换列表(列出新传感器数据){
mSensorDatas=newSensorDatas;
notifyDataSetChanged();
mEmptyView.setVisibility(getItemCount()==0?
View.VISIBLE:View.GONE);
}
公共列表getList(){
返回传感器数据;
}
公共类FishFaemViewHolder扩展
RecyclerView.ViewHolder
实现View.OnClickListener{
//公共最终图像视图mIconView;
公共最终文本视图mDateView;
公共最终文本视图临时视图;
公共最终文本视图;
公共FishFaemViewHolder(查看项目视图){
超级(项目视图);
//mIconView=(图像视图)
itemView.findViewById(R.id.list\u item\u图标);
mDateView=(文本视图)
itemView.findViewById(R.id.list\u item\u date);
tempView=(TextView)
itemView.findViewById(R.id.temp_值);
phView=(TextView)
itemView.findViewById(R.id.ph_值);
setOnClickListener(这个);
}
@凌驾
公共void onClick(视图v){
int adapterPo