我有一个问题。
我想在Button
中获得List View
的位置。
在我在“编辑”或“删除”按钮中单击时,我想在List View
中找到它的位置。
怎么可能?
这是我的Office管理屏幕。所有数据都来自我的网络服务ListView
运行时。
我使用此代码在列表视图中获取数据 -
ListAdapter adapter = new SimpleAdapter(Office_Mgmt.this, officeList, R.layout.office_mgmt_list_model, new String[] { "office_name" }, new int[] { R.id.label});
setListAdapter(adapter);
答案 0 :(得分:2)
您可以创建自定义适配器,将应用程序的上下文作为参数传递以设置单击:
listView.setAdapter(new PesquisaAdapter(this, anunciantescidades, this);
然后,在适配器的构造函数中,您将有一个OnClickListener
来接收您传递的参数this
:
public PesquisaAdapter(Context context, List<Anunciante> anunciantes, OnClickListener onClick1)
在适配器的getView方法中,您可以设置按钮的onClickListener:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.your_custom_layout, null);
Button btn = (Button) v.findViewById(R.id.yourbutton);
btn.setOnClickListener(onClick1);
}
在你的java中,你可以实现onClickListener
,然后用你的按钮做你想做的事情:
@Override
public void onClick(View v) {
if(yourbutton.getId() == v.getId()){
final int position = listView.getPositionForView((LinearLayout)v.getParent());
}
}
因此,您将在列表中找到您单击的位置,并且您可以单独管理编辑和删除的单击。
希望它有所帮助!
答案 1 :(得分:0)
为listview实施onItemClick(AdapterView<?> parent, View view, int position, long id)
。
可以从处理程序中识别位置和视图。您可以使用setTag设置其他信息,同时在Adapter的getView方法中创建视图并在处理程序中检索,然后在处理程序中验证是否需要。