本次分享的是國外大牛們關於listView的一些牛逼方法的使用,外國的大牛真是牛掰,菜鳥無限佩服...
這個工程可以左右拖動刪除、調換位置的的listview的 item的實現,這個方法在iphone手機上應用還是挺廣泛的,android中也有這樣實現的,在android的開源項目中,那些牛逼的外國大牛們也分享了他們的開源項目,下面呢,就是小菜鳥學習在git代碼上借鑒那些外國大牛的源碼,由於水平有限,在git上下載下來的源碼無法導入Eclipse中直接運行,那么怎么解決這個問題呢,下面是菜鳥我的解決方法,大神們可以略過,如果有那個大神可以抽出空閑時間,教教小弟怎樣直接運行從Git下下載的工程,小弟感激不盡,這樣呢,小弟就不用用這樣笨拙的方法解決這個問題了,這個工程源碼的下載地址: https://github.com/bauerca/drag-sort-listview
實現的效果如下左右拖動刪除、
上下拖動調換位置
部分代碼實現的如下:
package com.nyist.net; import java.util.ArrayList; import java.util.Arrays; import android.app.Activity; import android.app.ListActivity; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class Drag_Sort_ListViewDemoActivity extends ListActivity { //private ArrayAdapter<ActivityInfo> adapter; private MyAdapter adapter; private ArrayList<ActivityInfo> mActivities = null; private String[] mActTitles; private String[] mActDescs; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.launcher); try { PackageInfo pi = getPackageManager().getPackageInfo( "com.nyist.net", PackageManager.GET_ACTIVITIES); mActivities = new ArrayList<ActivityInfo>(Arrays.asList(pi.activities)); String ourName = getClass().getName(); for (int i = 0; i < mActivities.size(); ++i) { if (ourName.equals(mActivities.get(i).name)) { mActivities.remove(i); break; } } } catch (PackageManager.NameNotFoundException e) { // Do nothing. Adapter will be empty. } mActTitles = getResources().getStringArray(R.array.activity_titles); mActDescs = getResources().getStringArray(R.array.activity_descs); //adapter = new ArrayAdapter<ActivityInfo>(this, // R.layout.launcher_item, R.id.text, mActivities); adapter = new MyAdapter(); setListAdapter(adapter); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { Intent intent = new Intent(); intent.setClassName(this, mActivities.get(position).name); startActivity(intent); } private class MyAdapter extends ArrayAdapter<ActivityInfo> { MyAdapter() { super(Drag_Sort_ListViewDemoActivity.this, R.layout.launcher_item, R.id.activity_title, mActivities); } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); TextView title = (TextView) v.findViewById(R.id.activity_title); TextView desc = (TextView) v.findViewById(R.id.activity_desc); title.setText(mActTitles[position]); desc.setText(mActDescs[position]); return v; } } }
想要源碼的可以留個郵箱