首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android的App列表之拖拽ListView(下)

2012-08-08 
Android的App列表之拖拽ListView(上)一、准备。1.需求问题? ? ? 初步:实现列表的拖拽效果(可参考Android源码

Android的App列表之拖拽ListView(上)

一、准备。

1.需求问题
? ? ? 初步:实现列表的拖拽效果(可参考Android源码下packages/apps/Music中的播放列表TouchInterceptor.java源码)。
? ? ? ? ? ? ? ?(提前说明一下,本文不是完全按照Music中实现的,代码实现方式做了一些调整,去掉来很多无关的东西,方便大家理解,效果上也修改成了另外一种个人认为是更简单更高效的一套。)
? ? ? 下面以初步实现为例子,逐步展开实现步骤。单纯Hibernate环境的搭建

2.搭建主界面DragListActivity.java和主布局drag_list_activity.xml。

public class DragListActivity extends Activity {        //数据列表    private List<String> list = null;        //数据适配器    private DragListAdapter adapter = null;        //存放分组标签    public static List<String> groupKey= new ArrayList<String>();    //分组一    private List<String> navList = new ArrayList<String>();    //分组二    private List<String> moreList = new ArrayList<String>();        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.drag_list_activity);                //初始化样本数据        initData();                //后面会介绍DragListView        DragListView dragListView = (DragListView)findViewById(R.id.drag_list);        adapter = new DragListAdapter(this, list);        dragListView.setAdapter(adapter);    }}

3.列表项的布局drag_list_item.xml。

?4.准备样本数据。
? ? ? 我已经准备好了两组数据,在前面提到的initData()方法中执行初始化。

public static class DragListAdapter extends ArrayAdapter<String>{    public DragListAdapter(Context context, List<String> objects) {        super(context, 0, objects);    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View view = convertView;        if(view==null){            //加载列表项模板            view = LayoutInflater.from(getContext()).inflate(R.layout.drag_list_item, null);        }                    TextView textView = (TextView)view.findViewById(R.id.drag_list_item_text);        textView.setText(getItem(position));        return view;    }}

? 注意getItem(position)会取得数组适配器中position位置的T(这里是字符串),比较好用的一个方法。

热点排行