Я пытаюсь получить кнопку для работы в строке ListView. Я читал о Custom Adapter, но не могу заставить его работать. В основном, у меня есть класс List_item, у которого есть 4 кнопки TextView и 1, которые ограничивают ListView в другом классе. один из текстовых элементов имеет id/Name. так что я хочу, когда я нажимаю кнопку на этой строке. он получит это значение TextView «name» и добавит его в ArrayList, и если я нажму другую кнопку в другой строке, он добавит значение «name» к тому же самому arraylist. поэтому в основном будут добавлены все те, которые я нажал на кнопку в ArrayList. это возможно??.Пользовательский макет для каждой строки в ListView
JUST TO ADD. textView Являются входящими в мою базу данных ..thanks upfront для любых ответов.
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);
}
});
Просьба указать минимальное количество кода, чтобы проиллюстрировать, что вы делаете. –
Я добавил метод фона, который должен произойти до того, как я сделаю списокAdapter в postexceute(). –
Поскольку ваш вопрос не имеет ничего общего с JSON, я предлагаю вам написать более простой пример с некоторыми жестко закодированными данными. –