我想在android studio中自定义listview,每个项目都有一个按钮。通过单击此按钮,它应该将列表视图中项目的ID返回到主活动中
我最近添加了布局xmls,我唯一的问题是在MainActivity.java和它所需的类中。
答案 0 :(得分:0)
在适配器的getView
方法中设置按钮的标签,例如: -
public View getView(int position, View convertview, ViewGroup parent) {
Button yourbutton = (Button) view.findViewById(R.id.yourbuttonid);
yourbutton.setTag(position);
.......
在按钮的onClick处理中,使用int position = (int) view.getTag();
来检索与数组索引相关的位置。
在ListView中处理按钮onClick
有两种主要方式
示例XML: -
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"
android:onClick="myButtonClicked" />
包含各自ListView的活动中的示例处理程序
.....
public myButtonClicked(View view) {
int position = (int) view.getTag();
....
}
onCLick
ListView
adapter
方法中设置监听器和getView
处理。示例: -
public View getView(int position, View convertview, ViewGroup parent) {
Button yourbutton = (Button) view.findViewById(R.id.yourbuttonid);
yourbutton.setTag(position);
yourbutton.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
int position = view.getTag();
}
});
您可能希望了解这些内容,更详细地介绍上述内容
我个人觉得XML方法非常方便。我使用Style
作为按钮的基础(我使用TextView作为按钮),因此我只需要将一个方法(在Style中设置)合并到相应的活动中。这甚至可以很好地应对每个ListView项目的多个按钮。