如何将列表视图项中的对象添加到新数组列表中

时间:2014-02-28 23:25:03

标签: android object android-listview arraylist

myListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            // TODO Auto-generated method stub
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialog_box);
            dialog.setTitle("Wish List");

            TextView dialogText = (TextView) dialog.findViewById(R.id.dialog_text);
            Button dialogButtonYes = (Button) dialog.findViewById(R.id.button_yes);
            Button dialogButtonNo = (Button) dialog.findViewById(R.id.button_no);

            dialogButtonYes.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    ArrayList<Product> wishList = new ArrayList<Product>();
                    wishList.add() ***// HOW DO I ACCESS THE OBJECT AT THAT ITEM TO ADD IT TO THE WISHLIST***
                }
            });

            dialogButtonNo.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                }
            });
        }
    });

我不知道如何在特定项目中插入Object点击进入数组列表。我该怎么做呢?

我通过列表视图将各种对象保存在不同的项目中但每个项目都包含一个不同的对象,当用户从特定项目的对话框中单击“是”时,我想将该对象存储在一个新的对象中数组列表再次。

谢谢

2 个答案:

答案 0 :(得分:0)

您应该能够在onItemClick中使用position参数(在您的示例中为arg2)来索引主列表。然后设置一个最终变量来存储Product,然后根据需要将其添加到对话框中:

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    Object o = myList.getItemAtPosition(arg2);
    if (o instanceof Product) {
        final Product selectedProduct = (Product)o;
    }  
    // ... Create dialog etc...
}

答案 1 :(得分:0)

在类

中的某处单击之外定义wishlist数组
 myListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {

            final Product product = adapter.getItem(arg2);

            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialog_box);
            dialog.setTitle("Wish List");

            TextView dialogText = (TextView) dialog.findViewById(R.id.dialog_text);
            Button dialogButtonYes = (Button) dialog.findViewById(R.id.button_yes);
            Button dialogButtonNo = (Button) dialog.findViewById(R.id.button_no);

            dialogButtonYes.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                      addToWishList(product);
                }
            });

            dialogButtonNo.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                }
            });
        }
    });

您的活动或适配器中的某个地方

ArrayList<Product> wishList = new ArrayList<Product>();

有这样的方法

public function addToWishList(Product product){
 wishList.add(product);
}