【发布时间】:2019-05-19 09:00:03
【问题描述】:
我正在为我的毕业设计申请校车。
我有两个总线信息 api,并使用 RecyclerView 显示这些信息。
当这个位置(?)的RecyclerView 具有特殊的跟踪器值时,我想让隐藏的图像视图显示出来。所以我只是使用
holder.tv_buspointer.setVisibility(View.VISIBLE);
出现。
我不确定它会起作用,所以我将跟踪器值放在最后一个Arraylist(在适配器中使用)。我不得不滚动到屏幕的末尾来检查可见的图像视图。在我滚动到上方之前,一切看起来都已找到。一些 recyclerview 的 imageview 也出现了。当我滚动得更高时,我可以看到很多不应该可见的图像视图。
我认为 recyclerview 中的 onBindViewHolder 方法有问题。
你们能帮我解决这个问题吗?
谢谢。
package com.example.absin.firebasebus;
import android.content.Context;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
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;
import java.util.ArrayList;
/**
* Created by absin on 2019-05-17.
*/
class station_after { //노선이 가지고 있는 정류장을 모두 출력하기 위해 만든 클래스
String stationId; //정류소 아이디
String mobileNo; //정류소 번호
String stationName;
int tracker =0;
public String getStationId() { return stationId; }
public String getMobileNo() { return mobileNo; }
public String getStationName() { return stationName; }
public int getTracker() { return tracker; }
public void setStationId(String stationId) { this.stationId = stationId; }
public void setStationName(String stationName) { this.stationName = stationName; }
public void setMobileNo(String mobileNo) { this.mobileNo = mobileNo; }
public void setTracker(int tracker) {this.tracker = tracker; }
}
class station_tracker { //이 클래스의 용도에 대한 자세한 설명은 Station_After_Number의 MySyncTask3 class 바로 위에 작성해두었다.
String stationId;
public String getStaionId() { return stationId;}
public void setStationId(String stationId) {this.stationId= stationId;}
}
public class AdapterSAN extends RecyclerView.Adapter<AdapterSAN.MyViewHolder> {
private ArrayList<station_after> mList;
private LayoutInflater mInflate;
private Context mContext;
View view;
public AdapterSAN(Context context, ArrayList<station_after> itmes) {
this.mList = itmes;
this.mInflate = LayoutInflater.from(context);
this.mContext = context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
view = mInflate.inflate(R.layout.san_iten, parent, false);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
//뷰에 값이 채워질 3개를 여기서 하는 것
public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
holder.tv_stationName.setText(mList.get(position).stationName);
holder.tv_buspointer.setVisibility(View.VISIBLE);
//Click event
}
@Override
public int getItemCount() {
return mList.size();
}
//ViewHolder
public static class MyViewHolder extends RecyclerView.ViewHolder {
public TextView tv_stationName;
public ImageView tv_buspointer;
public MyViewHolder(View itemView) {
super(itemView);
tv_stationName = itemView.findViewById(R.id.tv_stationname2);
tv_buspointer = itemView.findViewById(R.id.tv_image);
}
}
}
【问题讨论】:
标签: android xml android-recyclerview adapter