我想创建一个连接列表,并为用户提供连接到其中任何一个连接的选项。
<TextView
android:id="@+id/tvName"
android:layout_width="225dp"
android:layout_height="38dp"
android:textSize="25sp" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="connect"
android:text="connect" />
这是列表中每个项目的基本结构。创建列表后,在“连接”功能中,我无法确定列表中的哪个按钮称为它。我必须知道要连接到该特定连接。谁能帮助我知道点击按钮的位置?先感谢您。
答案 0 :(得分:0)
您可以在自定义适配器的getView方法中设置onClick事件。
public View getView(final int position, View convertView,
ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.vehicals_details_row, parent,
false);
Button btnView = (Button) row.findViewById(R.id.button1);
btnView .setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
// Your code that you want to execute on this button click
}
});
答案 1 :(得分:0)
使用OnItemClickListener
向ListView
添加setOnItemClickListener
。监听器具有以下回调函数:
onItemClick(AdapterView<?> parent, View view, int position, long id)
(position
是你想要的,我猜)
答案 2 :(得分:0)
您基本上有两种选择:
1)在适配器中,附加到每个按钮(在视图中)一个监听器,引用列表中的正确项(我假设这些项是(发明的)类ConnectionItem的实例):
View itemView = .... //view inflated here
ConnectionItem connItem = ..//the current connection
Button button = (Button) itemView.findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
Log.i(YOUR_TAG, "clicked on item:"+connectionItem.getName());
}
});
2)在适配器中,您可以使用项目本身为视图设置标记:
View itemView = .... //view inflated here
ConnectionItem connItem = ..//the current connection
Button button = (Button) itemView.findViewById(R.id.button1);
button.setTag(connItem)
然后在你的活动中:
public void connect(View view) {
ConnectionItem connItem = (ConnectionItem)view.getTag();
Log.i(YOUR_TAG, "clicked on item:"+connectionItem.getName());
}
希望这有帮助