Java 我有一个“回收器”视图,将显示onRun,但单击按钮后它将为空,我想设置一个默认的“回收器”视图
我目前有一个回收器视图,它可以在Android studio中根据纬度和经度进行工作。由于使用模拟器而加载时,我会传递一个默认位置,这会加载地图中该位置周围的区域。我也有一个微调器,它允许你改变区域并在屏幕上的地图上显示标记。但是问题是,当我所在的位置是当前位置(设置为默认仿真器位置谷歌像素旧金山)时,Realver视图显示为空,我想在适配器类中编辑我的Realver视图,以便如果视图是空的,将文本设置为“如果您不需要代码,请询问”。p>Java 我有一个“回收器”视图,将显示onRun,但单击按钮后它将为空,我想设置一个默认的“回收器”视图,java,android,android-recyclerview,Java,Android,Android Recyclerview,我目前有一个回收器视图,它可以在Android studio中根据纬度和经度进行工作。由于使用模拟器而加载时,我会传递一个默认位置,这会加载地图中该位置周围的区域。我也有一个微调器,它允许你改变区域并在屏幕上的地图上显示标记。但是问题是,当我所在的位置是当前位置(设置为默认仿真器位置谷歌像素旧金山)时,Realver视图显示为空,我想在适配器类中编辑我的Realver视图,以便如果视图是空的,将文本设置为“如果您不需要代码,请询问”。p> @Override public voi
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
QuietPlace quietPlace = mQuietPlace.get(position);
if (mQuietPlace.size() > 0){
TextView textView = holder.titleTextView;
textView.setText(quietPlace.getName());
TextView textView2 = holder.noiseTextView;
textView2.setText(quietPlace.getNoise());
TextView textView3 = holder.distanceTextView;
textView3.setText(String.valueOf(quietPlace.getDistance()));
}
else {
TextView textViewEmpty = holder.titleTextView;
textViewEmpty.setText("No Quiet Places near your location");
TextView textViewEmpty2 = holder.noiseTextView;
textViewEmpty2.setText(" ");
TextView textViewEmpty3 = holder.distanceTextView;
textViewEmpty3.setText(" ");
}
}
编辑:
package com.example.myapplication;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.TextView;
导入androidx.annotation.NonNull;
导入androidx.recyclerview.widget.recyclerview;
导入java.util.List;
公共类QuietReplaceAdapter扩展了RecyclerView.Adapter{
私人名单mQuietPlace;
公共QuietPlaceAdapter(列出quietPlaces)
{
mQuietPlace=quietPlaces;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
Context=parent.getContext();
LayoutFlater充气机=LayoutFlater.from(上下文);
视图quietPlaceView=充气机。充气(R.layout.recycler\u视图,父视图,false);
ViewHolder ViewHolder=新的ViewHolder(quietPlaceView);
返回视图持有者;
}
@凌驾
public void onBindViewHolder(@NonNull ViewHolder,int位置){
QuietPlace QuietPlace=mQuietPlace.get(位置);
TextView TextView=holder.titleTextView;
textView.setText(quietPlace.getName());
TextView textView2=holder.noiseTextView;
textView2.setText(quietPlace.getNoise());
TextView textView3=holder.distance TextView;
textView3.setText(String.valueOf(quietPlace.getDistance());
}
@凌驾
public int getItemCount(){
返回mQuietPlace.size();
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图titleTextView;
公共文本视图noiseTextView;
公共文本视图距离文本视图;
公共视图持有者(视图项视图){
超级(项目视图);
titleTextView=(TextView)itemView.findViewById(R.id.quietPlaceTitle);
noiseTextView=(TextView)itemView.findViewById(R.id.quietPlaceNoise);
distanceTextView=(TextView)itemView.findViewById(R.id.quietPlaceDistance);
}
}
}
如果列表是动态的,则不要在构造函数中传递该列表
在适配器中添加此函数
public void setPanelList(List<QuietPlace> quietPlaces){
mQuietPlace = quietPlaces;
notifyDataSetChanged();
}
希望这有帮助。看起来不错,那么,你想做什么?你能发布整个适配器文件吗?我阅读了sqlite数据库,如果它返回坐标周围的“安静的地方”,我会在回收器视图中显示它们,并告诉你距离和噪音级别。但是,我只为某些坐标创建了“安静的地方”,所以当我选择数据库没有结果的坐标时,我只想显示一个空的回收器视图,其中的文本说明在ur坐标附近没有“安静的地方”。我将添加Adapater文件。
public void setPanelList(List<QuietPlace> quietPlaces){
mQuietPlace = quietPlaces;
notifyDataSetChanged();
}
quietPlaceAdapter.setPanelList(quietPlaces)