Java 为什么RecyclerView没有显示任何项目?

Java 为什么RecyclerView没有显示任何项目?,java,android,android-layout,android-recyclerview,Java,Android,Android Layout,Android Recyclerview,在提出这个问题之前,我尽可能仔细地回顾了以下内容: 我尽量按照上面的建议去做。但是,我的应用程序中的RecyclerView中仍然没有显示任何项目 在下面,您将找到我的代码。请注意: 1) 我只包含了我认为与代码相关的部分 2) 我正在使用GreenRobot事件总线更新适配器。这就是OneEvent方法的用武之地 3) 运行应用程序时,将生成下面代码中的所有日志语句(操作之前/之后)。我复习了日志。我找不到任何相关的警告/错误 在这一点上,我不知所措。我觉得好像我错过了一些非常明显/基

在提出这个问题之前,我尽可能仔细地回顾了以下内容:

我尽量按照上面的建议去做。但是,我的应用程序中的RecyclerView中仍然没有显示任何项目

在下面,您将找到我的代码。请注意:

1) 我只包含了我认为与代码相关的部分

2) 我正在使用GreenRobot事件总线更新适配器。这就是OneEvent方法的用武之地

3) 运行应用程序时,将生成下面代码中的所有日志语句(操作之前/之后)。我复习了日志。我找不到任何相关的警告/错误

在这一点上,我不知所措。我觉得好像我错过了一些非常明显/基本的东西。我只是不知道是什么。UI不是我的专长。如果能为解决这个问题提供任何建议,我将不胜感激

谢谢

代码
public类MainActivity扩展了FragmentActivity
{
私有用户位置信息适配器MuserLocationInformation适配器;
私人回收站;
私人ArrayList_mwifi详细信息;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView=(recyclerView)findViewById(R.id.wifiData);
init();
}
私有void init()
{
_mWifidetails=newarraylist();
Log.i(标记“-init-_mWifidetails.size()-”+_mWifidetails.size());
mUserLocationInformationAdapter=新用户位置信息适配器(MainActivity.this,\u mWifidetails);
setItemAnimator(新的DefaultItemAnimator());
recyclerView.setAdapter(MuserLocationInformation适配器);
RecyclerView.LayoutManager mLayoutManager=新的LinearLayoutManager(MainActivity.this);
recyclerView.setLayoutManager(mLayoutManager);
mUserLocationInformationAdapter.notifyDataSetChanged();
Log.i(标记“-init-Recycler-view-set-up-”;
}
@订阅
public void onEvent(MessageEvent事件)
{
wifi_data=新的ArrayList();
Log.i(标记“-onEvent-Event-posted.Taking action---”;
_mWifidetails=event.getMwifiModal();
Log.i(标记“-onEvent-mWifidetails.size()-”+mWifidetails.size());
mUserLocationInformationAdapter.notifyDataSetChanged();
Log.i(标记“-onEvent-Event-posted.Action completed----”;
}
公共静态类UserLocationInformationAdapter扩展了RecyclerView.Adapter
{
私有ArrayList数据集;
私人停车场;
私有WifiDetails.ItemClickListener mClickListener;
公共类ViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener
{
公共文本视图ssidTV、wifiLevelTV、disTextView;
ViewHolder(视图文本视图)
{
超级(文本视图);
ssidTV=(TextView)TextView.findViewById(R.id.ssidTV);
wifiLevelTV=(TextView)TextView.findViewById(R.id.wifi_级别);
disTextView=(TextView)TextView.findviewbyd(R.id.distanceTv);
}
@凌驾
公共void onClick(视图)
{
if(mClickListener!=null)mClickListener.onItemClick(视图,getAdapterPosition());
}
}
公共UserLocationInformationAdapter(上下文上下文,ArrayList myDataset)
{
this.mInflater=LayoutInflater.from(上下文);
mDataset=myDataset;
}
@凌驾
public UserLocationInformationAdapter.ViewHolder onCreateViewHolder(视图组父级、,
int视图类型)
{
TextView v=(TextView)mInflater
.充气(R.layout.wifi\u detail\u适配器,父级,错误);
视窗支架vh=新视窗支架(v);
返回vh;
}
@凌驾
公共无效onBindViewHolder(ViewHolder,int位置)
{
String address=“address:”+mDataset.get(position).address;
String latitude=“latitude:+mDataset.get(position).lat;
字符串longitude=“longitude:+mDataset.get(position).lon;
//上述三行是否应替换为这三行?
//String address=“address:”+mDataset.get(mDataset.size()-1).address;
//String latitude=“latitude:+mDataset.get(mDataset.size()-1).lat;
//字符串longitude=“longitude:+mDataset.get(mDataset.size()-1).lon;
holder.ssidTV.setText(地址);
holder.wifiLevelTV.setText(纬度);
holder.disTextView.setText(经度);
holder.ssidTV.setVisibility(视图可见);
holder.wifiLevelTV.setVisibility(View.VISIBLE);
holder.disTextView.setVisibility(View.VISIBLE);
}
@凌驾
public int getItemCount()
{
返回mDataset.size();
}
}
}

布局 activity_main.xml

wifi_detail_adapter.xml
您正在向适配器传递一个空列表

_mWifidetails = new ArrayList<Classes.UserLocationInformation>();

mUserLocationInformationAdapter = new UserLocationInformationAdapter(MainActivity.this, _mWifidetails);
\u mWifidetails=new ArrayList();
mUserLocationInformationAdapter=新用户位置信息适配器(MainActivity.this,\u mWifidetails);

\u mWifidetails
第一次为空。然而,从第二次开始,通过OneEvent,我传递的列表被填充。我现在已经准备好了。谢谢你的帮助。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
tools:layout_editor_absoluteX="8dp"
tools:layout_editor_absoluteY="8dp">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/wifiData"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_margin="2dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:clickable="true"
            android:splitMotionEvents="false"
            android:text="User Location Information" />

</LinearLayout>
<?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="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.CardView
    android:id="@+id/view2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:clickable="true"
    android:elevation="12dp"
    app:cardCornerRadius="10dp"
    android:layout_margin="5dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="10dp">


    <TextView
        android:id="@+id/ssidTV"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Address:: "/>

    <TextView
        android:id="@+id/wifi_level"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Latitude:: "/>

    <TextView
        android:id="@+id/distanceTv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Longitude:: "/>

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

</LinearLayout>
_mWifidetails = new ArrayList<Classes.UserLocationInformation>();

mUserLocationInformationAdapter = new UserLocationInformationAdapter(MainActivity.this, _mWifidetails);