【问题标题】:How to take value from Object in ArrayList displayed in ListView?如何从 ListView 中显示的 ArrayList 中的对象中获取值?
【发布时间】:2018-11-09 22:45:37
【问题描述】:

我有一个简短的问题。我得到了ListView,它显示了来自ArrayList 的对象。我想要Toast,当我单击列表上的项目时,它可以显示我的对象中的一个值(例如,当我的对象被称为Product 时,我想显示该产品的名称)。我的代码如下所示,我不知道把getProductName() 放在哪里。

 final ArrayList<Product> productList = new ArrayList<>();
    for(Product p: md.takeAllProducts()){

        productList.add(p);
    }

    ProductListAdapter adapter = new ProductListAdapter(this,R.layout.adapter_view_layout,productList);
    mListView.setAdapter(adapter);

    mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
          Toast.makeText(ProductsList.this, mListView.getItemAtPosition(position).toString(),Toast.LENGTH_SHORT).show();

【问题讨论】:

    标签: java android listview adapter android-toast


    【解决方案1】:

    您可以使用传递给onItemClick() 的参数来完成此操作:

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Product p = (Product) parent.getAdapter().getItem(position);
        Toast.makeText(parent.getContext(), p.toString(), Toast.LENGTH_SHORT).show();
    }
    

    当然,您可以将p.toString() 替换为Product 类中可用的任何方法,例如p.getName() 等。

    【讨论】:

    • 是的!非常感谢:)我花了很多时间试图解决这个问题......:D
    • 不客气。如果您认为这对您有所帮助,请考虑接受和/或投票,以便其他人可以看到它有所帮助。评论可以随时删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2014-02-03
    • 1970-01-01
    • 2020-03-02
    相关资源
    最近更新 更多