Android 通过单击按钮返回listview项的id
Android 通过单击按钮返回listview项的id,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我想在android studio中定制一个列表视图,每个项目都有一个按钮。通过单击此按钮,它应将按钮所在的列表视图中项目的id返回到主活动。 我最近添加了布局XML,唯一的问题是MainActivity.java及其所需的类。在适配器的getView方法中设置按钮的标记,例如:- public View getView(int position, View convertview, ViewGroup parent) { Button yourbutton = (B
我想在android studio中定制一个列表视图,每个项目都有一个按钮。通过单击此按钮,它应将按钮所在的列表视图中项目的id返回到主活动。
我最近添加了布局XML,唯一的问题是MainActivity.java及其所需的类。
在适配器的
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
有两种主要方法
1) 指定要在按钮的XML中使用的方法(仅从API级别4开始),并在调用活动中提供处理方法:- 示例XML:-
2) 在
ListView
的adapter
的getView
方法中包括设置侦听器和onCLick
处理。
示例:-
您可能希望查看这些,其中更详细地介绍了上述内容
我个人觉得XML方法非常方便。我使用
样式
作为按钮的基础(我使用按钮的文本视图),因此有一个方法(如样式中设置的),我只是将其纳入各自的活动中。这甚至可以很好地处理每个ListView项的多个按钮。您已经编写了哪些代码来尝试获得结果?它怎么还不起作用?我应该把按钮的onClick放在哪里?@M.R.Davoodi,更新答案,包括可以把onClick处理程序放在哪里。
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click"
android:onClick="myButtonClicked" />
.....
public myButtonClicked(View view) {
int position = (int) view.getTag();
....
}
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();
}
});