首先声明,该文章为自己学习笔记,仅供参考,不保证所有文字均描述得当,欢迎指出不足和错误之处,再此感谢您的关注和阅读。如果有需要代码的可以留言,和我联系。
1.ListView的显示
通过这个例子,我们就可以将ListView显示出来了,但是仅仅是将ListView显示出来,而什么也做不了。
1.新建一个mainlist_items用于对ListView进行布局
2.在KeroApiDemosActivity.java控制xml里面的控件,其中用到了一个simpleadapter下一天准备写一下
KeroApiDemosActivity.java
package com.example.android.apis;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class KeroApiDemosActivity extends Activity {
/** Called when the activity is first created. */
private ListView listview;
//声明一个ListView的变量导入包android.widget.ListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//绑定mainListView
listview = (ListView)findViewById(R.id.mainListView);
//listview.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,getData()));
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
for(int i=0;i<10;i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ItemImage", R.drawable.ic_launcher);//图像资源的ID
map.put("ItemTitle", "Level "+i);
map.put("ItemText", "Finished in 1 Min 54 Secs, 70 Moves! ");
listItem.add(map);
}
//生成适配器的Item和动态数组对应的元素
SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源
R.layout.mainlist_items,//ListItem的XML实现
//动态数组与ImageItem对应的子项
new String[] {"ItemImage","ItemTitle", "ItemText"},
//ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] {R.id.ItemImage,R.id.ItemTitle,R.id.ItemText}
);
listview.setAdapter(listItemAdapter);
}
}mainlist_items.xml<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<ImageView
android:paddingTop="12dip"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ItemImage"
/>
<TextView
android:text="TextView01"
android:layout_height="wrap_content"
android:textSize="20dip"
android:layout_width="fill_parent"
android:id="@+id/ItemTitle"
/>
<TextView
android:text="TextView02"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_below="@+id/ItemTitle"
android:id="@+id/ItemText"
/>
</RelativeLayout>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/mainListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>看下效果图

2.操作这个ListView
ListView主要有以下几种操作
1.单击响应(主要用于弹出一个新的Activity)
2.长按响应(比如删除或者添加条目等等)
//点击响应(单击)
listview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
setTitle("点击第"+arg2+"个项目");
Toast.makeText(KeroApiDemosActivity.this, "您点击了第"+arg2+"个项目", Toast.LENGTH_SHORT).show();
}
});
//长按响应
listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
@Override
public void onCreateContextMenu(ContextMenu menu, View arg1,
ContextMenuInfo arg2) {
// TODO Auto-generated method stub
menu.setHeaderTitle("长按弹出菜单");
menu.add(0, 0, 0, "添加一个List");
menu.add(0, 1, 0, "删除一个List");
}
});
}
//这里有个印象就好,菜单的响应
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId())
{
case 0:
Toast.makeText(KeroApiDemosActivity.this, "菜单第"+item.getItemId()+"项添加一个List", Toast.LENGTH_SHORT).show();
break;
case 1:
Toast.makeText(KeroApiDemosActivity.this, "菜单第"+item.getItemId()+"项删除一个List", Toast.LENGTH_SHORT).show();
break;
}
return super.onContextItemSelected(item);
}
好了,大概就这样,这一篇就到这里。
最后写了一些代码,把整个项目的框架打出来了,以后就这样填充吧。看一下效果~

本文介绍如何在Android应用中实现ListView组件,并演示了使用SimpleAdapter来填充数据的过程。此外,还展示了如何为ListView设置点击和长按事件。

1475

被折叠的 条评论
为什么被折叠?



