我是Android开发的新手,我正在尝试使用每行末尾的按钮创建一个多列列表视图。我有以下xml来实现这种格式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/value_name"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:typeface="sans"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/child_name"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:typeface="sans"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/point_value"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:typeface="sans"
android:textColor="#000000"
android:layout_weight="1"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/claimChore"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Claim Chore"/>
我一直在网上搜索这个问题的答案,并找到了一个添加到代码中的解决方案。但是,此解决方案的按钮并未定制以查找有关特定行的信息,因此我不知道在此方法中要放置什么来检索此行。如果有人能够对这个onClick方法中的内容有所了解,那将是一个很大的帮助。
wrapper.mySimpleAdapter = new SimpleAdapter(Child_Chore.this, chores, R.layout.list_format, new String[]{"chore","points"},new int[]{R.id.value_name,R.id.point_value})
{
@Override
public View getView (int position, View convertView, ViewGroup parent)
{
View v = super.getView(position, convertView, parent);
Button b=(Button)v.findViewById(R.id.claimChore);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//Where I want to identify the current R.id.value_name;
}
});
return v;
}
};
答案 0 :(得分:0)
使用变量'position',方法'getView'给你。
@Override
public View getView (int position, View convertView, ViewGroup parent)
{
View v = super.getView(position, convertView, parent);
Button b=(Button)v.findViewById(R.id.claimChore);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
//Where I want to identify the current
doAnything(position);
}
});
return v;
}