ListView之SimpleAdapter列表添加…

本文介绍了一款应用,用于展示并允许用户选择特定公司的详细信息,包括公司名称、CEO和评分,通过列表视图实现交互体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ListView之SimpleAdapter列表添加事件

点击一项出现,点击的内容

我们主文件的.xml

<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextView 
        android:id="@+id/info"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提示信息"/>
    
    <ListView 
        android:id="@+id/datalist"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

新建一个datalist.xml
<LinearLayout 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"
    android:orientation="horizontal"
    tools:context=".MainActivity"
    android:id="@+id/datalist">
    
        <ImageView 
         android:id="@+id/pic"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="left"
         android:src="@drawable/pic_oracle"/>
        
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="180px"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       tools:context=".MainActivity"
       android:gravity="left">
  
  
    <TextView 
       android:id="@+id/company"
       android:textSize="16px"
       android:padding="3px"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
  
    <TextView 
       android:id="@+id/ceo"
       android:padding="3px"
       android:textSize="10px"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>   
</LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:tools="http://schemas.android.com/tools"
       android:layout_width="200px"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       tools:context=".MainActivity"
       android:gravity="left">
  
  
    <TextView 
       android:id="@+id/type"
       android:textSize="16px"
       android:padding="1px"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
  
    <ImageView 
       android:id="@+id/score"
       android:padding="1px"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>  
    
</LinearLayout>
</LinearLayout>

我们的主程序文件
.java

public class MainActivity extends Activity {

//定义我们的图片数组
private int pic[]=new int[]
{
R.drawable.pic_oracle,
R.drawable.pic_javase,
R.drawable.pic_javaweb,
R.drawable.pic_javaee,
R.drawable.pic_android,
R.drawable.pic_game
};
//定义我们显示的公司、CEO、公司类型、公司的星级图片
private String data[][]=new String[][]
{
{"百度","李彦宏","搜索",R.drawable.start_01+""},
{"阿里巴巴","马云","电子商务",R.drawable.start_02+""},
{"腾讯","马化腾","社交网络",R.drawable.start_03+""},
{"新浪","曹国伟","社交媒体",R.drawable.start_04+""},
{"网易","丁磊","互联网",R.drawable.start_05+""},
{"搜狐","张朝阳","互联网",R.drawable.start_01+""},
};
private ListView dataList=null;
private List<Map<String,String>> list=new ArrayList<Map<String,String>>();
private SimpleAdapter simpleAdapter=null;
private TextView info=null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.dataList=(ListView) super.findViewById(R.id.datalist);
this.info=(TextView)super.findViewById(R.id.info);
//将我们每一条记录添加到我们的Map当中
for(int i=0;i<data.length;i++){
//定义我们的Map数据
Map<String,String> map=new HashMap<String, String>();
//添加数据
map.put("pic", String.valueOf(pic[i]));
map.put("company",data[i][0]);
map.put("ceo", data[i][1]);
map.put("type", data[i][2]);
map.put("score", data[i][3]);
this.list.add(map);
}
this.simpleAdapter=new SimpleAdapter(
this, 
this.list, 
R.layout.datalist, 
new String[]{"pic","company","ceo","type","score"}, 
new int[]{R.id.pic,R.id.company,R.id.ceo,R.id.type,R.id.score}
);
this.dataList.setAdapter(this.simpleAdapter);
//为我们的记录添加点击事件
this.dataList.setOnItemClickListener(new OnItemClickListenerImp());
}
public class OnItemClickListenerImp implements OnItemClickListener{

public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Map<String,String> map=(Map<String, String>) MainActivity.this.simpleAdapter.getItem(position);
String company=map.get("company");
String ceo=map.get("ceo");
MainActivity.this.info.setText("您选择的公司是"+company+"ceo为"+ceo);
}
}
}
好的,我可以为您解答这个问题。 ListView 是一种常用的 Android 控件,可以用于展示一系列数据。SimpleAdapter 是一种适配器,可以将数据绑定到 ListView 上。 下面是实现列表项的步骤: 1. 准备数据 首先需要准备数据。一般来说,数据可以是一个 List<Map<String, Object>>,其中每个 Map 对应一个列表项,Map 中的键值对表示列表项的属性,比如标题、图片等。例如: ``` List<Map<String, Object>> data = new ArrayList<>(); Map<String, Object> item1 = new HashMap<>(); item1.put("title", "标题1"); item1.put("image", R.drawable.icon1); data.add(item1); Map<String, Object> item2 = new HashMap<>(); item2.put("title", "标题2"); item2.put("image", R.drawable.icon2); data.add(item2); ``` 2. 创建 SimpleAdapter 接下来需要创建 SimpleAdapter,将数据绑定到 ListView 上。SimpleAdapter 的构造函数需要传入以下参数: - Context:上下文对象。 - data:数据源。 - resource:列表项的布局文件。 - from:数据源中 Map 的键名数组,表示要绑定到哪些视图上。 - to:列表项布局文件中视图的 ID 数组,表示要绑定到哪些视图上。 例如: ``` SimpleAdapter adapter = new SimpleAdapter( this, // 上下文对象 data, // 数据源 R.layout.list_item, // 列表项布局文件 new String[] { "title", "image" }, // 数据源中 Map 的键名数组 new int[] { R.id.title, R.id.image } // 列表项布局文件中视图的 ID 数组 ); ``` 3. 设置 Adapter 最后需要将 Adapter 设置到 ListView 上。例如: ``` ListView listView = findViewById(R.id.list_view); listView.setAdapter(adapter); ``` 这样就完成了列表项的实现。当然,还可以对列表项进行一些定制化,比如添加点击事件等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值