我想要一個按鈕在ListView行中工作。我一直在閱讀關於自定義適配器,但不能得到它的工作。基本上我有一個List_item類有4個TextView和1個按鈕,在另一個類中添加了一個ListView。其中一個textViews有id/Name。所以我想要的是當我按下該行上的按鈕。它將得到該TextView的「名稱」的值並將其添加到一個ArrayList,如果我按另一行上的另一個按鈕,它會將「名稱」的值添加到同一個數組列表中。所以基本上會將我按下按鈕的所有元素添加到ArrayList中。那可能嗎??。在ListView中的每一行的自定義佈局
只需添加。 textView正在被我的數據庫喂入..感謝任何回覆。
List_item.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="10dp" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<TextView
android:id="@+id/id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:visibility="gone" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_weight="3"
android:textAllCaps="true"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:textStyle="bold"
android:typeface="serif" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="right"
android:paddingRight="15dp"
android:textAllCaps="true"
android:textColor="#FFFFFF"
android:textSize="30sp"
android:textStyle="bold"
android:typeface="serif" />
<Button
android:id="@+id/order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="0"
android:focusable="false"
android:minHeight="0dp"
android:minWidth="50dp"
android:text="+"
android:textStyle="bold" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tableRow1"
android:gravity="center_horizontal" >
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="true"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:textStyle="bold"
android:typeface="serif"
android:visibility="gone" />
</TableRow>
</RelativeLayout>
我menu.xml文件有
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="697dp" >
</ListView>
現在我想的TextView的 「名稱」 值當我按下它的行按鈕。
這就是我用來填補我的ListView之前,我添加按鈕,它工作正常
ListAdapter adapter = new SimpleAdapter (getCategoryItems.this,itemsList,R.layout.list_item, new String[]{ TAG_ID, TAG_NAME,TAG_PRICE, TAG_DESCRIPTION},new int[] { R.id.id, R.id.name, R.id.price, R.id.description});
setListAdapter(adapter);
但現在在我添加的按鈕,它沒有得到任何價值,所以我reaserched,我發現我必須將我的SampleAdapter更改爲自定義適配器。並在getView()中添加按鈕,但我無法得到它的掛起。
我的按鈕OnClickListener
Button order = (Button) view.findViewById(R.id.order);
order.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
String name = ((TextView)view.findViewById(R.id.name)).getText().toString();
Log.d("Selected : ", name);
}
});
請發佈最少量的代碼來說明你在做什麼。 – 2013-02-16 23:10:36
我添加了在執行postexceute()中的listAdapter之前應該發生的背景方法。 – 2013-02-16 23:28:54
由於你的問題與JSON無關,我建議你用一些硬編碼數據編寫一個更簡單的例子。 – 2013-02-16 23:31:53