1

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

我通过一个列表视图,在触摸左侧时,我被重定向到另一个具有更详细通话记录的列表视图,右侧我得到一个“呼叫”按钮

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

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

4

2 回答 2

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;
}
于 2012-10-26T05:24:48.000 回答
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;

            }


        }
    });
于 2012-10-26T05:24:52.693 回答