您的位置:首页 > 其它

模仿三星通讯录 ListView 左右滑动拨号或发短信

2013-03-16 20:38 197 查看
ListView 里面item 为ViewPaper

直接上代码:

View Code

package com.pzh;

import java.util.ArrayList;
import java.util.List;

import com.jon.R;

import android.R.integer;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ViewPagerListView extends Activity
{
private ContactListView listView;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ContactListView) this.findViewById(R.id.listview);
String str = "a";
List<String> strings = new ArrayList<String>();
strings.add(str);
strings.add(str);
strings.add(str);
strings.add(str);
strings.add(str);
listView.setAdapter(new ListViewAdapter(this, 0, strings));
}

class ListViewAdapter extends ArrayAdapter<String>
{
private Context mContext;
private View view1;
private View view2;
private View view3;
private List<View> views;

public ListViewAdapter(Context context, int textViewResourceId,
List<String> objects)
{
super(context, textViewResourceId, objects);
views = new ArrayList<View>();
mContext = context;
view1 = LayoutInflater.from(mContext).inflate(R.layout.view1, null);
view2 = LayoutInflater.from(mContext).inflate(R.layout.view2, null);
view3 = LayoutInflater.from(mContext).inflate(R.layout.view3, null);
views.add(view1);
views.add(view2);
views.add(view3);
}

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(R.layout.vp_item, null);
}
ViewPager vp = (ViewPager) convertView
.findViewById(R.id.tabcontent_vp);
vp.setAdapter(new TabAdapter());
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
{

@Override
public void onPageSelected(int position)
{
//                    // TODO Auto-generated method stub
//                    int count = 0;
//                    if (position == 1)
//                    {
//                        listView.setCanMoving(false);
//                        count++;
//                    }
//                    if (position == 0)
//                    {
//                        count--;
//                        if (count == 0)
//                        {
//                            listView.setCanMoving(true);
//                        }
//                    }
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2)
{
// TODO Auto-generated method stub
// 拦截父控件的onTounch事件
if (arg0 > 0.1 && arg1 < 0.9)
{
listView.requestDisallowInterceptTouchEvent(true);
}
}

@Override
public void onPageScrollStateChanged(int arg0)
{
// TODO Auto-generated method stub
// 解除父控件的onTounch事件
if (arg0 == ViewPager.SCROLL_STATE_DRAGGING)
{
listView.requestDisallowInterceptTouchEvent(false);
}

}
});
vp.setCurrentItem(1);
return convertView;
}

private class TabAdapter extends PagerAdapter
{

@Override
public int getCount()
{
return views.size();
}

@Override
public Object instantiateItem(View arg0, int arg1)
{

((ViewPager) arg0).addView(views.get(arg1));
return views.get(arg1);
}

@Override
public void destroyItem(View arg0, int arg1, Object arg2)
{
((ViewPager) arg0).removeView(views.get(arg1));
}

@Override
public boolean isViewFromObject(View arg0, Object arg1)
{
return arg0 == arg1;
}

@Override
public void restoreState(Parcelable arg0, ClassLoader arg1)
{

}

@Override
public Parcelable saveState()
{
return null;
}

@Override
public void startUpdate(View arg0)
{

}

@Override
public void finishUpdate(View arg0)
{

}
}

}

}


代码地址:http://files.cnblogs.com/echo6106/ViewPagerListViewItem.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: