在列表视图中获取Button的位置

时间:2014-01-30 13:35:35

标签: android android-listview android-button

我有一个问题。

我想在Button中获得List View的位置。

在我在“编辑”或“删除”按钮中单击时,我想在List View中找到它的位置。

怎么可能?

这是我的Office管理屏幕。所有数据都来自我的网络服务ListView运行时。

This is my Office Management Screen. All the data getting run-time from my web-service.

我使用此代码在列表视图中获取数据 -


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);

2 个答案:

答案 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方法中创建视图并在处理程序中检索,然后在处理程序中验证是否需要。