我有一个ArrayList的声明的活动
private ArrayList<Product> products = new ArrayList<Product>();
和里面的onCreate
products.add(new Product("Product One",100, 1));
products.add(new Product("Product Two",200, 2));
products.add(new Product("Product Three",170, 3));
products.add(new Product("Product Four",220, 4));
ProductAdapter itemsAdapter = new ProductAdapter(this, products);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(itemsAdapter);
registerForContextMenu(listView);
在产品类别:
public class Product {
private String mProductName;
private int mProductPrice;
private int mProductId;
public Product(String productName, int productPrice, int productId){
mProductName = productName;
mProductPrice = productPrice;
mProductId = productId;
}
public String getProductName(){
return mProductName;
}
public int getProducId(){
return mProductId;
}
public int getProductPrice(){
return mProductPrice;
}
}
和适配器是简单的让每一个产品的名称和价格,并查看列表。现在,在活动我创建这样的上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
我怎样才能长压项目属性如产品编号使用“onContextItemSelected”上下文菜单中选择选项后?
首先设置一个全局变量的productId然后在列表视图长按监听器设定的产品编号。看看下面的示例代码。
int productId = 0;
lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()
{
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1,int pos, long id) {
// TODO Auto-generated method stub
Product product =
(Product)arg0.getAdapter().getItem(position)
productId = product.mProductId;
return false;
}
});