如何从我的ListView引用元素内部的视图?

来源:爱站网时间:2021-12-03编辑:网友分享
如何从我的ListView引用元素内部的视图?爱站小编为了解决这个问题为ListView创建了一个自定义适配器,它具有三个视图-TextView,ImageView和基本视图,具体详细的内容都在下方发上来的文章里,大家可以参考看看。

问题描述


因此,我为带有三个视图的TextView,ImageView和基本View创建了用于ListView的自定义适配器:

 

我已经创建并实例化了ListView

        notesListView = view.findViewById(R.id.notesListView);

并在其中塞满一堆我的笔记

        notes = (ArrayList) db.getAllNotesForDay(NotesForDayActivity.getRememberDay(),
            NotesForDayActivity.getRememberMonth(),
            NotesForDayActivity.getRememberYear());
    for (Note note : notes) {
        noteTitles.add(note.getTitle());
    }

        NotesListAdapter adapter = new NotesListAdapter(((NotesForDayActivity) getActivity()).getContext(), notes);
        notesListView.setAdapter(adapter);

使用我的自定义适配器:

public class NotesListAdapter extends BaseAdapter  {

private static final String TAG = "NotesListAdapter";
public static Context context;
private RelativeLayout notesListRelativeLayout;
private TextView noteTitleTextView;
private ImageView tickImage;
private View underlineView;

private List notes;
// !
private View listItemsView;

public NotesListAdapter(Context context, List notes) {
    this.notes = notes;
    this.context = context;
}

@Override
public int getCount() {
    return NotesForDayActivity.getCountNotes();
}

@Override
public Object getItem(int position) {
    return notes.get(position);
}

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

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    listItemsView = convertView;
    if (listItemsView == null) {
        listItemsView = LayoutInflater.from(NotesForDayActivity.context).inflate(R.layout.notes_list_layout, null);
    }

    underlineView = listItemsView.findViewById(R.id.underlineView);
    notesListRelativeLayout  = (RelativeLayout) listItemsView.findViewById(R.id.notesListRelativeLayout);
    noteTitleTextView = (TextView) listItemsView.findViewById(R.id.noteTitleTextView);
    tickImage = (ImageView) listItemsView.findViewById(R.id.tickImageView);
    noteTitleTextView.setText(notes.get(position).getTitle());

    return listItemsView;
}

我可以使用OnItemClickListener访问ListView内部的项目,但我不知道如何访问ListView特定项目内的视图。

所以,如果我这样设置OnClick:

        notesListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView> parent, View view, int position, long id) {

        }
    });

我如何引用该项目中的三个视图之一。例如,我需要设置imageview的可见性:

感谢您的任何帮助。

思路:


尝试一下,OnItemClickListener将返回该视图,以便您可以通过该视图进行访问

notesListView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView> parent, View view, int position, long id) {
             ImageView tickImage = view.findViewById(R.id. tickImageView);
             if(tickImage!=null){
                 tickImage.setVisibility(View.GONE);
              }
            }
        }); 

 以上内容就是爱站技术频道小编为大家分享的如何从我的ListView引用元素内部的视图?,看完以上分享之后,大家应该都知道怎么吃操作了吧。

上一篇:怎么从日期中减去天数

下一篇:怎么看JTextField中的示例文本

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载