Android: как получить свойство элемента списка с помощью плавающего элемента контекстного меню - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть активность с объявлением массива

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);
}

Как я могу получить свойство долго нажатого элемента, например, идентификатор продукта, после выбора optipn из контекстного меню с помощью «onContextItemSelected»?

1 Ответ

0 голосов
/ 03 февраля 2019

сначала задайте глобальную переменную 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;
        }
    }); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...