Android 滚动列表给出意外结果

Android 滚动列表给出意外结果,android,android-listview,custom-lists,Android,Android Listview,Custom Lists,我在BaseAdapter的帮助下创建了一个自定义列表视图。现在我需要检查一个条件,根据该条件,我必须隐藏列表中的按钮。开始时,它工作正常,但当我滚动列表时,按钮不在其所需位置。我知道这是由于重新按下列表,但请您建议我如何操作克服它,因为我是android新手 代码 公共类RecentDocumentAdapter扩展了BaseAdapter{ 碎片管理器碎片管理器; 活动; DbHandler-DbHandler; DbModel-DbModel; 私人语境; 私有AlertDialog.Bu

我在BaseAdapter的帮助下创建了一个自定义列表视图。现在我需要检查一个条件,根据该条件,我必须隐藏列表中的按钮。开始时,它工作正常,但当我滚动列表时,按钮不在其所需位置。我知道这是由于重新按下列表,但请您建议我如何操作克服它,因为我是android新手

代码

公共类RecentDocumentAdapter扩展了BaseAdapter{
碎片管理器碎片管理器;
活动;
DbHandler-DbHandler;
DbModel-DbModel;
私人语境;
私有AlertDialog.Builder;
私有字符串[]共享数组;
私人对话;
私人碎片交易;
私有ArrayList代数中心文件;
私有包;
public RecentDocumentAdapter(上下文、活动、ArrayList alGetRecentFiles){
this.context=上下文;
这个。活动=活动;
this.alGetRecentFiles=alGetRecentFiles;
bundle=新bundle();
}
@凌驾
public int getCount(){
返回alGetRecentFiles.size();
}
@凌驾
公共对象getItem(int i){
返回null;
}
@凌驾
公共长getItemId(int i){
返回0;
}
@凌驾
公共视图getView(最终int i、视图视图、视图组视图组){
最终持票人;
如果(视图==null){
holder=新的ViewHolder();
view=LayoutFlater.from(context).充气(R.layout.recent_docs_custom_list,viewGroup,false);
holder.docsImage=(ImageView)view.findViewById(R.id.iv\u最近的文档\u图像);
holder.tvTitle=(TextView)view.findViewById(R.id.tv\u最近的\u名称);
holder.tvPostedOn=(TextView)view.findViewById(R.id.tv\u recent\u posted\u on);
holder.btShare=(按钮)view.findViewById(R.id.bt\u最近的\u共享);
holder.btFav=(按钮)view.findViewById(R.id.bt\u recent\u fav);
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
if(alGetRecentFiles.get(i).getCheckType()==2){
holder.btShare.setVisibility(View.GONE);
}
holder.tvTitle.setText(alGetRecentFiles.get(i).getTitle()+alGetRecentFiles.get(i).getFileExtension());
holder.tvPostedOn.setText(alGetRecentFiles.get(i.getPostedOn());
如果(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.jpg”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.jpg”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.gif”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(.get(i)(“.tiff”)){
holder.docsImage.setImageResource(R.drawable.image);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.doc”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.docx”)){
holder.docsImage.setImageResource(R.drawable.docx);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.xls”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.xlsx”)){
holder.docsImage.setImageResource(R.drawable.excel);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.ppt”)| | alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(.pptx”)){
holder.docsImage.setImageResource(R.drawable.ppt);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.pdf”)){
holder.docsImage.setImageResource(R.drawable.pdf);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“.txt”)){
holder.docsImage.setImageResource(R.drawable.txt);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“3gp”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“mp4”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“mkv”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“wmv”)| alGetRecentFiles.get(i).getFileExtension()).equalsIgnoreCase(“flv”)|| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“avi”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“mpeg”)| alGetRecentFiles.get(i).getFileExtension().get(i).getFileExtension().equalsIgnoreCase(“divx”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“div”)){
holder.docsImage.setImageResource(R.drawable.video);
}else if(alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“mp3”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“wma”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“aac”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“wav”)| alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(“m4a”)){
holder.docsImage.setImageResource(R.drawable.audio);
}否则{
holder.docsImage.setImageResource(R.drawable.help);
}
if(alGetRecentFiles.get(i).getFavorities().equals(“1”)){
holder.btFav.setVisibility(视图可见);
}否则{
holder.btFav.setVisibility(View.GONE);
}
holder.btShare.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
bundle.putString(“docId”,alGetRecentFiles.get(i).getDocId());
bundle.putString(“title”,alGetRecentFiles.get(i.getTitle());
bundle.putString(“path”,alGetRecentFiles.get(i).getFilePath());
bundle.putString(“ext”,alGetRecentFiles.get(i).getFileExtension());
bundle.putString(“fileName”,alGetRecentFiles.get(i).getFileName());
bundle.putInt(“hasPassword”),alGetRecentFil
public class RecentDocumentAdapter extends BaseAdapter {

    FragmentManager fragmentManager;
    Activity activity;
    DbHandler dbHandler;
    DbModel dbModel;
    private Context context;
    private AlertDialog.Builder builder;
    private String[] shareArray;
    private Dialog dialog;
    private FragmentTransaction fragmentTransaction;
    private ArrayList<DbModel> alGetRecentFiles;
    private Bundle bundle;


    public RecentDocumentAdapter(Context context, Activity activity, ArrayList<DbModel> alGetRecentFiles) {
        this.context = context;
        this.activity = activity;
        this.alGetRecentFiles = alGetRecentFiles;
        bundle = new Bundle();
    }

    @Override
    public int getCount() {
        return alGetRecentFiles.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(final int i, View view, ViewGroup viewGroup) {
        final ViewHolder holder;

        if (view == null) {
            holder = new ViewHolder();
            view = LayoutInflater.from(context).inflate(R.layout.recent_docs_custom_list, viewGroup, false);
            holder.docsImage = (ImageView) view.findViewById(R.id.iv_recent_docs_image);
            holder.tvTitle = (TextView) view.findViewById(R.id.tv_recent_name);
            holder.tvPostedOn = (TextView) view.findViewById(R.id.tv_recent_posted_on);
            holder.btShare = (Button) view.findViewById(R.id.bt_recent_share);
            holder.btFav = (Button) view.findViewById(R.id.bt_recent_fav);

            view.setTag(holder);
        } else {
            holder = (ViewHolder) view.getTag();
        }

if (alGetRecentFiles.get(i).getCheckType() == 2) {
                holder.btShare.setVisibility(View.GONE);
            }


        holder.tvTitle.setText(alGetRecentFiles.get(i).getTitle() + alGetRecentFiles.get(i).getFileExtension());
        holder.tvPostedOn.setText(alGetRecentFiles.get(i).getPostedOn());

        if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".jpg") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".jpeg") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".png") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".gif") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".tiff")) {
            holder.docsImage.setImageResource(R.drawable.image);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".doc") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".docx")) {
            holder.docsImage.setImageResource(R.drawable.docx);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".xls") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".xlsx")) {
            holder.docsImage.setImageResource(R.drawable.excel);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".ppt") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".pptx")) {
            holder.docsImage.setImageResource(R.drawable.ppt);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".pdf")) {
            holder.docsImage.setImageResource(R.drawable.pdf);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase(".txt")) {
            holder.docsImage.setImageResource(R.drawable.txt);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("3gp") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("mp4") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("mkv") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("wmv") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("flv") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("avi") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("mpeg") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("mov") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("divx") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("div")) {
            holder.docsImage.setImageResource(R.drawable.video);
        } else if (alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("mp3") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("wma") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("aac") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("wav") || alGetRecentFiles.get(i).getFileExtension().equalsIgnoreCase("m4a")) {
            holder.docsImage.setImageResource(R.drawable.audio);
        } else {
            holder.docsImage.setImageResource(R.drawable.help);
        }


        if (alGetRecentFiles.get(i).getFavourites().equals("1")) {
            holder.btFav.setVisibility(View.VISIBLE);


        } else {
            holder.btFav.setVisibility(View.GONE);
        }


        holder.btShare.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                bundle.putString("docId", alGetRecentFiles.get(i).getDocId());
                bundle.putString("title", alGetRecentFiles.get(i).getTitle());
                bundle.putString("path", alGetRecentFiles.get(i).getFilePath());
                bundle.putString("ext", alGetRecentFiles.get(i).getFileExtension());
                bundle.putString("fileName", alGetRecentFiles.get(i).getFileName());
                bundle.putInt("hasPassword", alGetRecentFiles.get(i).getHasPassword());
                bundle.putString("password", alGetRecentFiles.get(i).getPassword());
                fragmentTransaction = activity.getFragmentManager().beginTransaction();
                ShareWithinpocketDocs shareWithinpocketDocs = new ShareWithinpocketDocs();
                shareWithinpocketDocs.setArguments(bundle);
                fragmentTransaction.replace(R.id.frag_container, shareWithinpocketDocs, "shareWithinPocketDocs");
                fragmentTransaction.addToBackStack("shareWithinPocketDocsBack").commit();
            }
        });

        return view;
    }

    private class ViewHolder {
        private ImageView docsImage;
        private TextView tvTitle, tvPostedOn;
        private Button btShare, btFav;

    }
}
if (alGetRecentFiles.get(i).getCheckType() == 2) {
    holder.btShare.setVisibility(View.GONE);
}else{
    holder.btShare.setVisibility(View.VISIBLE);
}