作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前有一个回收器 View ,可以在 Android studio 中使用纬度和经度。由于使用模拟器而加载时,我传递了一个默认位置,这会加载 map 中该位置周围的区域。我还有一个微调器,可以让您更改区域并在屏幕上的 map 上显示标记。但是问题是,当使用位置(在我的情况下是当前位置(设置为默认模拟器位置 Google Pixel San Francisco?)时,回收器 View 显示为空,我想在 Adapter 类中编辑我的回收器 View ,以便如果 View 为空,请将文本设置为“您周围没有地方”,如果需要代码,请询问。
@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;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class QuietPlaceAdapter extends RecyclerView.Adapter<QuietPlaceAdapter.ViewHolder> {
private List<QuietPlace> mQuietPlace;
public QuietPlaceAdapter(List<QuietPlace> quietPlaces)
{
mQuietPlace = quietPlaces;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
Context context = parent.getContext();
LayoutInflater inflater = LayoutInflater.from(context);
View quietPlaceView = inflater.inflate(R.layout.recycler_view, parent, false);
ViewHolder viewHolder = new ViewHolder(quietPlaceView);
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
QuietPlace quietPlace = mQuietPlace.get(position);
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()));
}
@Override
public int getItemCount() {
return mQuietPlace.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView titleTextView;
public TextView noiseTextView;
public TextView distanceTextView;
public ViewHolder(View itemView) {
super(itemView);
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();
}
在 Activity 中,当 quietPlaces
更改时 setPanelList(quietPlaces)。
quietPlaceAdapter.setPanelList(quietPlaces)
希望这有帮助。
关于java - 我有一个回收器 View ,onRun 将显示,但单击按钮后它将为空,我想设置默认回收器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59079812/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!