如何从适配器访问 ListView [英] How do I access to ListView from the adapter
本文介绍了如何从适配器访问 ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有我自己的适配器的自定义 ListView
.我正在处理对 ListView
项目中的 Button
的点击,并且我希望 ListView
在这次点击时变得不可见.
I have a custom ListView
with my own adapter. I'm handling the click on a Button
in my ListView
's item, and I want the ListView
to become invisible on this click.
我不知道如何从适配器访问 ListView
.
I have no idea how to get access to the ListView
from the adapter.
public class ScheduleArrayAdapter extends ArrayAdapter<ScheduleListItem> {
/*...*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(id, null);
}
final ScheduleListItem o = items.get(position);
if (o != null) {
/*...*/
Button details=(Button)v.findViewById(R.id.btn_details);
details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//HOW TO MAKE (R.id.lv_schedule) TO BECOME INVISIBLE HERE?
}
});
}
return v;
}
}
推荐答案
ViewGroup parent
持有对 getView()<返回的
View
的父级的引用/code>,在您的情况下是您的自定义列表视图.
ViewGroup parent
holds reference to the parent of the View
returned by getView()
, which in your case is your custom listview.
@Override
public View getView(int position, View convertView, final ViewGroup parent) {
...
details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parent.setVisibility(View.INVISIBLE); // or View.GONE
}
});
...
return v;
}
这篇关于如何从适配器访问 ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文