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 に答える