Ich habe einen listview-Adapter, der eine Zeile enthält eine Schaltfläche erstellt. Es funktioniert, wenn ich auf die Schaltfläche geklickt wird, aber nicht, wenn ich auf die Zeile klicken Dies ist meine Haupttätigkeitandroid listview mit Button funktioniert nicht
public class MainActivity extends AppCompatActivity {
.
.
.
ListView lvProducts = (ListView) findViewById(R.id.lvProducts);
lvProducts.addHeaderView(getLayoutInflater().inflate(R.layout.product_list_header, lvProducts, false));
ProductAdapter productAdapter = new ProductAdapter(this);
productAdapter.updateProducts(Constant.PRODUCT_LIST);
lvProducts.setAdapter(productAdapter);
lvProducts.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Product product = Constant.PRODUCT_LIST.get(position - 1);
Intent intent = new Intent(MainActivity.this, ProductActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("product", product);
Log.d(TAG, "View product: " + product.getName());
intent.putExtras(bundle);
startActivity(intent);
}
});
Dies ist der Teil-Adapter ist
public class ProductAdapter extends BaseAdapter {
bAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(v.getContext(),"Button "+position,Toast.LENGTH_SHORT).show();
Cart cart = CartHelper.getCart();
Log.d(TAG, "Adding product: " + product.getName());
cart.add(product, 1);
Intent intent = new Intent(context, ShoppingCartActivity.class);
context.startActivity(intent);
}
});
Die XML-Datei des Adapters
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200px"
android:layout_margin="5dp"
android:minHeight="50dp"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:id="@+id/tvProductName"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:gravity="center"
android:text=""/>
<ImageView android:id="@+id/ivProductImage"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.25"
android:gravity="center"/>
<TextView
android:id="@+id/tvProductPrice"
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="0.24"
android:gravity="center"
android:text=""/>
<Button
android:id="@+id/tvAddItem"
android:layout_width="69dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="A"
/>
</LinearLayout>
können Sie bitte Ihre XML-Code des Adapters –
Mögliche Duplikat [Android einfügen: Wie OnClick-Ereignis für Button in Liste setzen Element von ListView] (http://stackoverflow.com/questions/12596199/android-how-to-set-onclick-event-for-button-in-list-item-of-listview) –
was meinst du mit " es funktionierte, als ich auf den Knopf geklickt habe, aber nicht als ich auf die Reihe geklickt habe "? Wenn dein Problem der Knopf ist und es funktionierte, klickend auf den Knopf, ich verstehe nicht, ob das Problem –