-->
当前位置:首页 > 题库 > 正文内容

移动应用开发 实验报告11 高级组件-ListView

Luz4年前 (2021-08-08)题库1062

 

一、实验目的

熟悉SimpleAdapter的用法;

掌握ListView的用法。

 

二、实验内容

通过SimpleAdapter类完成一个显示更加复杂效果的Listtview

三、实验原理

SimpleAdapter类的主要功能是将List集合的数据转换为ListView可以支持的数据。在实例化SimpleAdapter类时会自动将在List集合中保存的数据以规定的模板进行数据的列表。Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Mapkey,另一组保存Mapvalue.

四、实验代码及结果

activity_main.xml:

<LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

      android:layout_width="fill_parent"

      android:layout_height="fill_parent"

 android:orientation="vertical"

       android:paddingBottom="@dimen/activity_vertical_margin"

      android:paddingLeft="@dimen/activity_horizontal_margin"

      android:paddingRight="@dimen/activity_horizontal_margin"

      android:paddingTop="@dimen/activity_vertical_margin"

      tools:context=".MainActivity">

 

 

    <TextView

          android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:textSize="25sp"

          android:gravity="center_horizontal"

        android:text="huzhou   university" />

    <ListView

        android:id="@+id/datalist"

           android:layout_width="fill_parent"

        android:layout_height="wrap_content"

       

        />  

 

</LinearLayout>

 

data_list.xml:

<TableLayout   xmlns:android="http://schemas.android.com/apk/res/android"

      xmlns:tools="http://schemas.android.com/tools"

      android:layout_width="fill_parent"

    android:layout_height="wrap_content"

   android:orientation="vertical"

      android:paddingBottom="@dimen/activity_vertical_margin"

      android:paddingLeft="@dimen/activity_horizontal_margin"

      android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity"   >

    <TableRow>

        <ImageView

             android:id="@+id/icon"

             android:layout_height="wrap_content"

             android:layout_width="wrap_content"

             android:src="@drawable/icon"

            />

          <TextView

              android:id="@+id/_id"

              android:textSize="15sp"

                 android:gravity="center_vertical"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"

          

          />

          <TextView

              android:id="@+id/name"

              android:textSize="15sp"

                 android:gravity="center_vertical"

              android:layout_width="wrap_content"

              android:layout_height="wrap_content"   

          />

    </TableRow>

       

      

 

</TableLayout>

Mainactivity.java:

package   com.example.ljy;

 

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.widget.ListView;

import   android.widget.SimpleAdapter;

 

public class   MainActivity extends Activity {

private String data[][]={

        {"001","abc"},{"001","abc"},

        {"001","abc"},{"001","abc"},

        {"001","abc"},{"001","abc"},

        {"001","abc"},{"001","abc"},

        {"001","abc"},{"001","abc"},

};

private ListView datalist=null;

private   List<Map<String,String>>list=new   ArrayList<Map<String,String>>();

private SimpleAdapter simpleAdapter=null;

 

    @Override

    protected void onCreate(Bundle   savedInstanceState) {

        super.onCreate(savedInstanceState);

          setContentView(R.layout.activity_main);

          this.datalist=(ListView)super.findViewById(R.id.datalist);

        for (int x=0;x<this.data.length;x++){

         Map<String,String>map=new   HashMap<String,String>();

         map.put("_id",   this.data[x][0]);

         map.put("name",   data[x][1]);

         this.list.add(map);

        }

        this.simpleAdapter=new   SimpleAdapter(this,this.list,

             R.layout.data_list,new   String[]{"_id","name"}

        ,new int[]{R.id._id,R.id.name}

             );

          this.datalist.setAdapter(this.simpleAdapter);

    }

 

 

    @Override

    public boolean onCreateOptionsMenu(Menu   menu) {

        // Inflate the menu; this adds items   to the action bar if it is present.

          getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

   

}

五、试验分析(思考)

在实例化SimpleAdapter类时传入List集合中所保存的每一个Mapkey和模板中组件定义的组件IDSimpleAdapter类会自动将Map中保存的指定keyvalue内容设置到与之对应的组件中进行显示。


发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。