Я учусь разработке Android.Я пытаюсь установить OnItemClickListener, но он не работает.У меня есть этот класс MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ArrayList<Product> products = new ArrayList<Product>();
products.add(new Product("product one",100, R.drawable.one, 1));
products.add(new Product("product two",200, R.drawable.two, 2));
products.add(new Product("product three",170, R.drawable.three, 3));
products.add(new Product("product four",220, R.drawable.four, 4));
products.add(new Product("product five",300,R.drawable.five, 5));
products.add(new Product("product six",130, R.drawable.six, 6));
products.add(new Product("product seven",100, R.drawable.seven, 7));
products.add(new Product("product eight",240, R.drawable.eight, 8));
products.add(new Product("product nine",190, R.drawable.nine, 9));
products.add(new Product("product ten",150, R.drawable.ten, 10));
ProductAdapter itemsAdapter = new ProductAdapter(this, products);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(itemsAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Toast.makeText(view.getContext() , "Welcome" ,Toast.LENGTH_SHORT).show();
}
});
}
}
И этот класс продукта
public class Product {
private String mProductName;
private int mProductPrice;
private int mProductImage;
private int mProductId;
public Product(String productName, int productPrice, int productImage, int productId){
mProductName = productName;
mProductPrice = productPrice;
mProductImage = productImage;
mProductId = productId;
}
public String getProductName(){
String upperString = mProductName.substring(0,1).toUpperCase() + mProductName.substring(1);
return upperString;
}
public int getProductPrice(){ return mProductPrice; }
public int getProductImage() { return mProductImage; }
public int getProductId() { return mProductId; }
}
list_item: содержит полный макет.Вложенные LinearLayouts для оформления элемента списка
<?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="90dp">
<ImageView
android:id="@+id/list_item_icon"
android:layout_width="90dp"
android:layout_height="80dp"
android:layout_marginTop="5dp"
android:scaleType="centerCrop"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="vertical">
<TextView
android:id="@+id/product_name"
style="@style/lisTxt"/>
<TextView
android:id="@+id/product_price"
style="@style/lisTxt"
android:textSize="11sp"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<Button
android:id="@+id/add_to_cart"
android:text="Add To Cart"
style="@style/listBtn"/>
<Button
android:id="@+id/buy_now"
android:text="Buy Now"
style="@style/listBtn"/>
</LinearLayout>
</LinearLayout>
Но когда я нажимаю на любой элемент списка, он ничего не вызывает.Где проблема и как ее решить?