Android ListView相关功能介绍
2015-07-31 11:55
513 查看
本文主要是对ListView应用的讲解,代码中有相关注释。
1.MainActivity.java
2.SimpleListViewActivity.java
3.SimpleCursorListViewActivity.java
4.SimpleAdapterListViewActivity.java
5.ListViewButtonActivity.java
6.布局文件main.xml
7.vlist.xml
8.vlist2.xml
9.AndroidManifest.xml文件配置
1.MainActivity.java
public class MainActivity extends Activity{ @SuppressWarnings("unused") private TextView mtitle; private Button btn1; private Button btn2; private Button btn3; private Button btn4; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init() { mtitle = (TextView)findViewById(R.id.mtitle); btn1 = (Button)findViewById(R.id.view1_btn); btn2 = (Button)findViewById(R.id.view2_btn); btn3 = (Button)findViewById(R.id.view3_btn); btn4 = (Button)findViewById(R.id.view4_btn); btn1.setOnClickListener(btn1Listener); btn2.setOnClickListener(btn2Listener); btn3.setOnClickListener(btn3Listener); btn4.setOnClickListener(btn4Listener); } private View.OnClickListener btn1Listener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SimpleListViewActivity.class); startActivity(intent); } }; private View.OnClickListener btn2Listener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SimpleCursorListViewActivity.class); startActivity(intent); } }; private View.OnClickListener btn3Listener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SimpleAdapterListViewActivity.class); startActivity(intent); } }; private View.OnClickListener btn4Listener = new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, ListViewButtonActivity.class); startActivity(intent); } }; }
2.SimpleListViewActivity.java
public class SimpleListViewActivity extends Activity { private ListView listView; //private List<String> data = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); listView = new ListView(this); //等同于 listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData())); ListAdapter listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()); listView.setAdapter(listAdapter); setContentView(listView); } private List<String> getData(){ List<String> data = new ArrayList<String>(); data.add("测试数据1"); data.add("测试数据2"); data.add("测试数据3"); data.add("测试数据4"); return data; } }
3.SimpleCursorListViewActivity.java
@SuppressWarnings("deprecation") public class SimpleCursorListViewActivity extends Activity{ private ListView listView; //private List<String> data = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); listView = new ListView(this); Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null); startManagingCursor(cursor); ListAdapter listAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_expandable_list_item_1, cursor, new String[]{People.NAME}, new int[]{android.R.id.text1}); listView.setAdapter(listAdapter); setContentView(listView); } }
4.SimpleAdapterListViewActivity.java
public class SimpleAdapterListViewActivity extends ListActivity{ // private List<String> data = new ArrayList<String>(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SimpleAdapter adapter = new SimpleAdapter(this,getData(),R.layout.vlist, new String[]{"title","info","img"}, new int[]{R.id.title,R.id.info,R.id.img}); setListAdapter(adapter); } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "G1"); map.put("info", "google 1"); map.put("img", R.drawable.i1); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G2"); map.put("info", "google 2"); map.put("img", R.drawable.i2); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G3"); map.put("info", "google 3"); map.put("img", R.drawable.i3); list.add(map); return list; } }
5.ListViewButtonActivity.java
public class ListViewButtonActivity extends ListActivity { private String TAG="ListViewButton"; private List<Map<String, Object>> mData; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mData = getData(); MyAdapter adapter = new MyAdapter(this); setListAdapter(adapter); } private List<Map<String, Object>> getData() { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("title", "G1"); map.put("info", "google 1"); map.put("img", R.drawable.i1); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G2"); map.put("info", "google 2"); map.put("img", R.drawable.i2); list.add(map); map = new HashMap<String, Object>(); map.put("title", "G3"); map.put("info", "google 3"); map.put("img", R.drawable.i3); list.add(map); return list; } // ListView 中某项被选中后的逻辑 @Override protected void onListItemClick(ListView l, View v, int position, long id) { Log.d(TAG, (String)mData.get(position).get("title")); } /** * listview中点击按键弹出对话框 */ public void showInfo(){ new AlertDialog.Builder(this) .setTitle("我的listview") .setMessage("介绍...") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .show(); } public final class ViewHolder{ public ImageView img; public TextView title; public TextView info; public Button viewBtn; } @SuppressLint("InflateParams") public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater; public MyAdapter(Context context){ this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return mData.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder=new ViewHolder(); convertView = mInflater.inflate(R.layout.vlist2, null); holder.img = (ImageView)convertView.findViewById(R.id.img); holder.title = (TextView)convertView.findViewById(R.id.title); holder.info = (TextView)convertView.findViewById(R.id.info); holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn); convertView.setTag(holder); }else { holder = (ViewHolder)convertView.getTag(); } holder.img.setBackgroundResource((Integer)mData.get(position).get("img")); holder.title.setText((String)mData.get(position).get("title")); holder.info.setText((String)mData.get(position).get("info")); holder.viewBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { showInfo(); } }); return convertView; } } }
6.布局文件main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/mtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="26dip" android:textStyle="bold" android:layout_marginTop="60dip" android:text="ListView功能测试" android:layout_gravity="center" /> <Button android:id="@+id/view1_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="简单的ListView" /> <Button android:id="@+id/view2_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="SimpleCursorAdapter" /> <Button android:id="@+id/view3_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="SimpleAdapter" /> <Button android:id="@+id/view4_btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="MyAdapter" /> </LinearLayout>
7.vlist.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:id="@+id/img" android:layout_width="60dip" android:layout_height="60dip" android:layout_margin="5px"/> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="24dip" android:textStyle="bold" /> <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="15dip" /> </LinearLayout> </LinearLayout>
8.vlist2.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:id="@+id/img" android:layout_width="60dip" android:layout_height="60dip" android:layout_margin="5px"/> <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="10dip"> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="24dip" android:textStyle="bold" /> <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:textSize="15dip" /> </LinearLayout> </LinearLayout> <Button android:id="@+id/view_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击" android:layout_alignParentRight="true" android:layout_alignParentBottom="true"/> </RelativeLayout>
9.AndroidManifest.xml文件配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.th.mylistview" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <uses-permission android:name="android.permission.READ_CONTACTS"> </uses-permission> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.th.mylistview.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.th.mylistview.SimpleListViewActivity"/> <activity android:name="com.th.mylistview.SimpleCursorListViewActivity"/> <activity android:name="com.th.mylistview.SimpleAdapterListViewActivity"/> <activity android:name="com.th.mylistview.ListViewButtonActivity"/> </application> </manifest>
相关文章推荐
- android 实现progressdialog 等待界面
- android.content.res.Resources$NotFoundException:+String+resource+ID+#0x1
- android 定制自己的log工具类
- Android 的manifest解析
- 从零开始学习android,记录他人的博客
- android-友盟第三方登录,及分享的使用
- 说说Android应用的persistent属性
- Android NDK *** could not be resolved
- android studion Gradle多渠道打包
- 图解Android应用程序构建原理
- Android开发笔记---service的简单使用
- Android-倒计时工具类
- Android端与Java服务端交互——SocketIO
- 解读Android虚拟机工作原理
- android studio Gradle基础
- 深入分析Android系统中SparseArray的源码
- android开源框架(开始开发的时候参考)
- Android性能优化之一:ViewStub
- Android Studio中使用git功能无法clone原因分析
- Android属性动画完全解析(上),初识属性动画的基本用法