Home  >  Article  >  Java  >  How to use listview in android development tutorial

How to use listview in android development tutorial

高洛峰
高洛峰Original
2017-01-20 15:28:411761browse

The first is the layout file. Two layout files are needed here. One is the layout file main. The problem is that the id of the ListView control must use the built-in android:id="@android:id/list" [note the form]

main.xml



        

list_item.xml




    
    

Then set the code in MainActivity: the basic idea is to first add the data to the ArrayList, and then set the SimpleAdapter adapter to complete the setting, enter the following:

package com.example.android_newlistview;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.widget.SimpleAdapter;
public class MainActivity extends ListActivity {
    
    String[] from={"name","id"};              //这里是ListView显示内容每一列的列名
    int[] to={R.id.user_name,R.id.user_id};   //这里是ListView显示每一列对应的list_item中控件的id

    String[] userName={"zhangsan","lisi","wangwu","zhaoliu"}; //这里第一列所要显示的人名
    String[] userId={"1001","1002","1003","1004"};  //这里是人名对应的ID

    ArrayList> list=null;
    HashMap map=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);       //为MainActivity设置主布局
        //创建ArrayList对象;
        list=new ArrayList>();
        //将数据存放进ArrayList对象中,数据安排的结构是,ListView的一行数据对应一个HashMap对象,
        //HashMap对象,以列名作为键,以该列的值作为Value,将各列信息添加进map中,然后再把每一列对应
        //的map对象添加到ArrayList中

        for(int i=0; i<4; i++){
            map=new HashMap();       //为避免产生空指针异常,有几列就创建几个map对象
            map.put("id", userId[i]);
            map.put("name", userName[i]);
            list.add(map);
        }

        //创建一个SimpleAdapter对象
        SimpleAdapter adapter=new SimpleAdapter(this,list,R.layout.list_item,from,to);
        //调用ListActivity的setListAdapter方法,为ListView设置适配器
        setListAdapter(adapter);        
    }
}

How to use listview in android development tutorial

Another way to respond to clicking on a certain row is to override the onListItemClick method, based on the returned position (starting from 0):

@Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  // TODO Auto-generated method stub
  super.onListItemClick(l, v, position, id);
 }

For more android development tutorials and listview usage related articles, please pay attention to the PHP Chinese website !

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn