列表视图中的两个可单击项

时间:2012-10-26 05:20:22

标签: android android-listview

我有一个Android Eclair(2.1)手机,我正在通过通话记录功能和

我看到了一个列表视图,其中触摸左侧我被重定向到另一个列表视图,其中包含更详细的通话记录,并且在右侧我收到“通话”按钮

经过研究和浏览互联网上的多个帖子后,我无法知道如何实现这一点,我想在我的应用程序中实现此功能。

这里的任何人都可以将我重定向到任何好的教程。

2 个答案:

答案 0 :(得分:3)

您可以在基本适配器中的getview方法中执行以下操作:

public View getView(final int position, View convertView, ViewGroup parent) {
    DemoClass holder;
    if (convertView == null) {
        convertView = mInflater.inflate(
                R.layout.layout_name, null);
        holder = new DemoClass();
        holder.mTxtVwNameTag = (TextView) convertView
                .findViewById(R.id.TxtVwOptionName);

        holder.mBtnApply = (Button) convertView.findViewById(R.id.BtnApply);// Here you can handle onclick events for list view items

        holder.mBtnApply.setFocusable(false);

        holder.mBtnApply.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                mIntPos = position;
                Log.d("++++++++" , "List item Position : " + mIntPos);
                new ApplyOfferAsync().execute();
            }
        });

        convertView.setTag(holder);
    } else {
        holder = (DemoClass) convertView.getTag();
    }
    try {
        holder.mTxtVwNameTag.setText(mNameTags.get(position));
    } catch (Exception e) {
        e.printStackTrace();
    }
    return convertView;
}

答案 1 :(得分:1)

您必须使用触控侦听器或自定义布局。

wv.setOnTouchListener(new OnTouchListener()
    {

        public boolean onTouch(View arg0, MotionEvent arg1) 
        {
            try
            {
            if(arg1.getAction()==MotionEvent.ACTION_DOWN)
            {
                x_down = (int) arg1.getX();
                y_down = (int) arg1.getY();

            Log.v("log", "x pos is "+x_down +"y pos is "+y_down);
            return true;
            }

            else if(arg1.getAction()==MotionEvent.ACTION_UP)
            {
                x_up = (int) arg1.getX();
                y_up = (int) arg1.getY();

            Log.v("log", "x pos is "+x_up +"y pos is "+y_up);


            if((x_down-x_up)>30)
            {
                //do stuf here
            }
            else if((x_up-x_down)>30)
            {
                 //do stuf here
            }
            return false;
            }
            else
            {
                return false;
            }

            }


            catch (Exception e)
            {
                e.printStackTrace();
                return false;

            }


        }
    });