如何从ArrayList获取位置的值

时间:2015-03-03 13:43:41

标签: java android arraylist

我在ArrayList>中显示图像和名称 在视图上我想从视图中获取位置值

profileimage.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {

                    use=arraylist.get(i).get("User_Id");
                    new userbyid().execute();   
                }
            });

我在数组列表中得到这样但它总是在图像上给出相同的ID单击

我想获得观点位置的价值
这里是setimage功能我在哪里显示图像和名称

public void settheimage(int j) 
{
    for (i = j; i < j+10; i++) 
    {
        LayoutInflater inflate = (LayoutInflater)getActivity()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        final View m_view = inflate.inflate(R.layout.custom_layout, null);
        ImageView m_image = (ImageView) m_view.findViewById(R.id.sp_image);
        LinearLayout m_topLayout = (LinearLayout) m_view.findViewById(R.id.sp_color);
        tempusername=(TextView)m_view.findViewById(R.id.username);
        ImageView profileimage=(ImageView)m_view.findViewById(R.id.profileimage);

        LinearLayout m_bottomLayout = (LinearLayout) m_view.findViewById(R.id.sp_linh);
        //final RelativeLayout myRelView = new RelativeLayout(this);
        m_view.setLayoutParams(new LayoutParams((windowwidth - 80), 450));
        m_view.setX(40);
        m_view.setY(40);
        m_view.setTag(i);
        Image=arraylist.get(i).get("User_Image");
        tempuser_id=arraylist.get(i).get("User_Id");
        username=arraylist.get(i).get("FirstName");
        tempusername.setText(username);
        Picasso.with(getActivity()).load(Image).into(m_image);
    //  m_image.setBackgroundResource(myImageList[i]);

        if (i == 0) {
            m_view.setRotation(-1);
        } else if (i == 1) {
            m_view.setRotation(-5);

        } else if (i == 2) {
            m_view.setRotation(3);

        } else if (i == 3) {
            m_view.setRotation(7);

        } else if (i == 4) {
            m_view.setRotation(-2);

        } else if (i == 5) {
            m_view.setRotation(5);

        }

        // ADD dynamically like button on image.
        final Button imageLike = new Button(getActivity());
        imageLike.setLayoutParams(new LayoutParams(100, 50));
        imageLike.setBackgroundDrawable(getResources().getDrawable(R.drawable.like));
        imageLike.setX(20);
        imageLike.setY(-250);
        imageLike.setAlpha(alphaValue);
        m_topLayout.addView(imageLike);

        // ADD dynamically dislike button on image.
        final Button imagePass = new Button(getActivity());
        imagePass.setLayoutParams(new LayoutParams(100, 50));
        imagePass.setBackgroundDrawable(getResources().getDrawable(R.drawable.dislike));

        imagePass.setX(260);
        imagePass.setY(-300);
        imagePass.setAlpha(alphaValue);
        m_topLayout.addView(imagePass);



        profileimage.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                use=arraylist.get(i).get("User_Id");
                new userbyid().execute();   
            }
        });

        m_topLayout.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                x_cord = (int) event.getRawX();
                y_cord = (int) event.getRawY();

            /*  m_view.setX(x_cord - screenCenter + 40);
                m_view.setY(y_cord - 150);*/
                switch (event.getAction()) {

                case MotionEvent.ACTION_DOWN:
                    x = (int) event.getX();
                    y = (int) event.getY();
                    Log.v("On touch", x + " " + y);
                    break;
                case MotionEvent.ACTION_MOVE:
                    x_cord = (int) event.getRawX(); // Updated for more
                                                    // smoother animation.
                    y_cord = (int) event.getRawY();
                    m_view.setX(x_cord - x);
                    m_view.setY(y_cord - y);
                    // m_view.setY(y_cord-y);
                    // y_cord = (int) event.getRawY();
                    // m_view.setX(x_cord - screenCenter + 40);
                    // m_view.setY(y_cord - 150);
                    if (x_cord >= screenCenter) {
                        m_view.setRotation((float) ((x_cord - screenCenter) * (Math.PI / 32)));
                        if (x_cord > (screenCenter + (screenCenter / 2))) {
                            imageLike.setAlpha(1);
                            if (x_cord > (windowwidth - (screenCenter / 4))) {
                                Likes = 2;
                            } else {
                                Likes = 0;
                            }
                        } else {
                            Likes = 0;
                            imageLike.setAlpha(0);
                        }
                        imagePass.setAlpha(0);
                    } else {
                        // rotate
                        m_view.setRotation((float) ((x_cord - screenCenter) * (Math.PI / 32)));
                        if (x_cord < (screenCenter / 2)) {
                            imagePass.setAlpha(1);
                            if (x_cord < screenCenter / 4) {
                                Likes = 1;
                            } else {
                                Likes = 0;
                            }
                        } else {
                            Likes = 0;
                            imagePass.setAlpha(0);
                        }
                        imageLike.setAlpha(0);
                    }

                    break;
                case MotionEvent.ACTION_UP:
                    x_cord = (int) event.getRawX();
                    y_cord = (int) event.getRawY();

                    Log.e("X Point", "" + x_cord + " , Y " + y_cord);
                    imagePass.setAlpha(0);
                    imageLike.setAlpha(0);

                    if (Likes == 0) {
                        // Log.e("Event Status", "Nothing");
                        m_view.setX(40);
                        m_view.setY(40);
                        m_view.setRotation(0);
                    } else if (Likes == 1) {
                        //Toast.makeText(getActivity(), "dislike the image",Toast.LENGTH_SHORT).show();
                        listvalue_pos--;
                        if(listvalue_pos==-1)
                        {
                            i=i+10;
                            listvalue_pos=9;
                            settheimage(i);
                            parentView.removeView(m_view);
                        }
                        else {
                            parentView.removeView(m_view);
                        }
                    //  new deletUSer().execute();

                    } else if (Likes == 2) {
                        //Toast.makeText(getActivity(), "like the image",Toast.LENGTH_SHORT).show();
                        listvalue_pos--;
                        if(listvalue_pos==-1)
                        {
                            i=i+10;
                            listvalue_pos=9;
                            settheimage(i);
                            parentView.removeView(m_view);
                        }
                        else {
                            parentView.removeView(m_view);
                        }
                        // new adduser().execute();

                    }
                    break;
                default:
                    break;
                }
                return true;
            }
        });

        parentView.addView(m_view);

    }

}

这里我将hashmap添加到arraylist

 map.put("User_Id", USer_id);
            map.put("FirstName",FirstName);
            map.put("User_Image", USer_Image);
            // Set the JSON Objects into the array
           /* list.add(USer_Image);
            useridlist.add(USer_id);
            usernamelist.add(FirstName);*/
            arraylist.add(map);

请给我答案如何获得arralist指数值

2 个答案:

答案 0 :(得分:0)

您可以使用int index = arraylist.indexOf(yourObject);

答案 1 :(得分:0)

我不确定是否正确理解了你想做的事情 你能看截图吗?

您可以为imageview设置标记