您的位置:首页 > 移动开发 > Android开发

Android基础之ListView(Item)的使用

2016-08-03 20:02 447 查看
直接玩实例:



activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>

</RelativeLayout>

新建item_simple_adapter.xml  代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="5px"
android:layout_marginRight="5px"
android:src="@drawable/backup"
/>

<TextView android:id="@+id/titleTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageView"
android:textSize="32px"
android:text="内容随意,显示会替换"
/>
<TextView android:id="@+id/descTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageView"
android:layout_below="@+id/titleTextView"
android:textSize="22px"
android:text="内容随意,显示会替换"
/>
</RelativeLayout>

MainActivity.java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {
private ListView lv;
private SimpleAdapter adapter;// 使用的适配器
private List<Map<String, Object>> list;// 数据源
private ImageView img;
private Map<String, Object> map;
private int[] imas = { R.drawable.backup, R.drawable.browser,
R.drawable.contacts, R.drawable.document, R.drawable.map,
R.drawable.music, R.drawable.note, R.drawable.theme,
R.drawable.store, R.drawable.setting };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化
lv = (ListView) findViewById(R.id.lv);
// 数据源的初始化
list = new ArrayList<Map<String, Object>>();
for (int i = 0; i < 10; i++) {
map = new HashMap<String, Object>();
// 给map添加键值对 一般来说item中包含多少个控件需要显示就会包含多少个键值对
map.put("name", imas[i]);
map.put("name1", "显示数据" + i);
map.put("name2", "显示数据子项" + i);
list.add(map);
}
//适配器进行初始化
//参数一:context 上下文对象
//参数二:data 数据源 类型为List<Map<String,Object>>
//参数三:resource item对应的布局。
//参数四:from 字符串类型的数组 map中的key组成的字符串类型的数组
//参数五:to int类型的数组
String[] from = { "name", "name1", "name2" };
int[] to = { R.id.imageView, R.id.titleTextView, R.id.descTextView };
adapter = new SimpleAdapter(MainActivity.this, list,
R.layout.item_simple_adapter, from, to);
lv.setAdapter(adapter);

//单击吐丝显示
lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "您点击了第"+position+"项", Toast.LENGTH_SHORT).show();

}

});

//长按删除
lv.setOnItemLongClickListener(new android.widget.AdapterView.OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
list.remove(position);
adapter.notifyDataSetChanged();

Toast.makeText(MainActivity.this, "您删除了第"+position+"项", Toast.LENGTH_SHORT).show();
return true;
}
});
}
}




友情链接:
http://www.2cto.com/kf/201402/280719.html http://blog.sina.com.cn/s/blog_87216a000100zl3o.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐