最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android控件之ListView用法實(shí)例詳解

 更新時(shí)間:2015年09月10日 09:56:19   作者:Ruthless  
這篇文章主要介紹了Android控件之ListView用法,以兩則實(shí)例形式較為詳細(xì)的分析了ListView控件顯示信息列表時(shí)的具體使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Android控件之ListView用法。分享給大家供大家參考。具體如下:

示例一:

在android開(kāi)發(fā)中ListView是比較常用的組件,它以列表的形式展示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長(zhǎng)度自適應(yīng)顯示。

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
  android:layout_width="fill_parent" android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android">
  <ListView android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:id="@+id/MyListView">
  </ListView>
</LinearLayout>

my_listitem.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
  android:layout_height="wrap_content"
  android:id="@+id/myListItem" 
  android:paddingBottom="3dip"
  android:paddingLeft="10dip">
  <TextView android:layout_height="wrap_content"
    android:layout_width="fill_parent" 
    android:id="@+id/itemTitle"
    android:textSize="20dip">
  </TextView>
  <TextView android:layout_height="wrap_content"
    android:layout_width="fill_parent" 
    android:id="@+id/itemText">
  </TextView>
</LinearLayout>

LsActivity類(lèi):

package com.ljq.ls;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class LsActivity extends Activity {
  private ListView list = null;
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    list = (ListView) findViewById(R.id.MyListView);
    //組織數(shù)據(jù)源
    List<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    for(int i=0;i<10;i++) {
      HashMap<String, String> map = new HashMap<String, String>();
      map.put("itemTitle", "This is Title");
      map.put("itemText", "This is text");
      mylist.add(map);
    }
    //配置適配器
    SimpleAdapter adapter = new SimpleAdapter(this, 
     mylist,//數(shù)據(jù)源 
     R.layout.my_listitem,//顯示布局
     new String[] {"itemTitle", "itemText"}, //數(shù)據(jù)源的屬性字段
     new int[] {R.id.itemTitle,R.id.itemText}); //布局里的控件id
    //添加并且顯示
    list.setAdapter(adapter);
  }
}

運(yùn)行結(jié)果如下圖所示:

示例二:

目錄結(jié)構(gòu)

main.xml布局文件:

<?xml version="1.0" encoding="utf-8"?>
<!-- 使用相對(duì)布局 -->
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
  <TextView android:layout_width="100dip"
    android:layout_height="wrap_content"
    android:layout_marginLeft="30dip"
    android:textSize="20dip"
    android:id="@+id/id"/>
  <TextView android:layout_width="100dip"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/id"
    android:layout_toRightOf="@id/id"
    android:textSize="20dip"
    android:id="@+id/name"/>
  <TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/name"
    android:layout_toRightOf="@id/name"
    android:textSize="20dip"
    android:id="@+id/age"/>
</RelativeLayout>

實(shí)體JavaBean:

package com.ljq.domain;
public class Person {
  private String id;
  private String name;
  private String age;
  public Person() {
    super();
  }
  public Person(String id, String name, String age) {
    super();
    this.id = id;
    this.name = name;
    this.age = age;
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getAge() {
    return age;
  }
  public void setAge(String age) {
    this.age = age;
  }
}

自定義適配器PersonAdapter

package com.ljq.ls;
import java.util.List;
import com.ljq.domain.Person;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
/**
 * ListView加載adapter的過(guò)程
 * 
 * 1、先判斷adapter有多少數(shù)據(jù)項(xiàng),根據(jù)這個(gè)數(shù)據(jù)確定有多少個(gè)item
 * 
 * 2、確定每個(gè)item里加載哪個(gè)view
 * 
 * 3、在view里加載要顯示的數(shù)據(jù)
 * 
 * @author jiqinlin
 *
 */
public class PersonAdapter extends ArrayAdapter{
  private LayoutInflater layoutInflater = null;
  private List<Person> persons;
  public PersonAdapter(Context context, int textViewResourceId, List objects) {
    super(context, textViewResourceId, objects);
    layoutInflater = LayoutInflater.from(context);
    persons = objects;
  }
  /**
   * 獲取adapter里有多少個(gè)數(shù)據(jù)項(xiàng)
   */
  @Override
  public int getCount() {
    return persons.size();
  }
  @Override
  public Object getItem(int position) {
    return persons.get(position);
  }
  @Override
  public long getItemId(int position) {
    return position;
  } 
  /**
   * 創(chuàng)建顯示的數(shù)據(jù)界面
   * 
   * Adapter的作用就是ListView界面與數(shù)據(jù)之間的橋梁,
   * 當(dāng)列表里的每一項(xiàng)顯示到頁(yè)面時(shí),都會(huì)調(diào)用Adapter的getView方法返回一個(gè)View。
   * 想過(guò)沒(méi)有? 在我們的列表有1000000項(xiàng)時(shí)會(huì)是什么樣的?是不是會(huì)占用極大的系統(tǒng)資源?
   */
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    /*
    // 優(yōu)化前
    ViewHolder holder = new ViewHolder();
    convertView = layoutInflater.inflate(R.layout.main, null);
    holder.id = (TextView)convertView.findViewById(R.id.id);
    holder.name = (TextView)convertView.findViewById(R.id.name);
    holder.age = (TextView)convertView.findViewById(R.id.age);
    convertView.setTag(holder);
    holder.id.setText(persons.get(position).getId());
    holder.name.setText(persons.get(position).getName());
    holder.age.setText(persons.get(position).getAge());
    return convertView;
    */
    // 優(yōu)化后
    ViewHolder holder;
    if(convertView == null){
      convertView = layoutInflater.inflate(R.layout.main, null);
      holder = new ViewHolder();
      holder.id = (TextView)convertView.findViewById(R.id.id);
      holder.name = (TextView)convertView.findViewById(R.id.name);
      holder.age = (TextView)convertView.findViewById(R.id.age);
      convertView.setTag(holder);
    }else{
      holder = (ViewHolder)convertView.getTag();
    }
    holder.id.setText(persons.get(position).getId());
    holder.name.setText(persons.get(position).getName());
    holder.age.setText(persons.get(position).getAge());
    return convertView;
  }
  /**
   * 界面上的顯示控件
   * 
   * @author jiqinlin
   *
   */
  private static class ViewHolder{
    private TextView id;
    private TextView name;
    private TextView age;
  }
}

類(lèi)LsActivity

package com.ljq.ls;
import java.util.ArrayList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
import com.ljq.domain.Person;
public class LsActivity extends ListActivity {
  private ArrayList<Person> persons = new ArrayList<Person>();
  private PersonAdapter personAdapter = null;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    initData();
    personAdapter =new PersonAdapter(LsActivity.this, R.layout.main, persons);
    setListAdapter(personAdapter);
    registerForContextMenu(getListView());
  }
  @Override
  protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    Person person = persons.get(position);
    Toast.makeText(LsActivity.this, person.getId()+":"+person.getName()
        +":"+person.getAge(), Toast.LENGTH_LONG).show();
    return;
  }
  private void initData(){
    persons.add(new Person("序號(hào)", "姓名", "年齡"));
    persons.add(new Person("1", "ljq1", "20"));
    persons.add(new Person("2", "ljq2", "20"));
    persons.add(new Person("3", "ljq3", "20"));
    persons.add(new Person("4", "ljq4", "20"));
    persons.add(new Person("5", "ljq5", "20"));
    persons.add(new Person("6", "ljq6", "20"));
    persons.add(new Person("7", "ljq7", "20"));
    persons.add(new Person("8", "ljq8", "20"));
    persons.add(new Person("9", "ljq9", "20"));
  }
}

運(yùn)行結(jié)果

希望本文所述對(duì)大家的Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 淺析Android高斯模糊實(shí)現(xiàn)方案

    淺析Android高斯模糊實(shí)現(xiàn)方案

    這篇文章給大家介紹了Android高斯模糊實(shí)現(xiàn)方案,本文通過(guò)場(chǎng)景分析代碼講解的非常詳細(xì),需要的朋友參考下吧
    2019-10-10
  • Android逆向技巧——去除開(kāi)屏廣告

    Android逆向技巧——去除開(kāi)屏廣告

    這篇文章主要介紹了Android如何去除開(kāi)屏廣告,幫助大家更好的理解和學(xué)習(xí)使用Android開(kāi)發(fā),感興趣的朋友可以了解下
    2021-04-04
  • Android 模擬器的使用詳細(xì)介紹

    Android 模擬器的使用詳細(xì)介紹

    本文主要介紹Android 模擬器,在開(kāi)發(fā)Android應(yīng)用過(guò)程中大家都要使用模擬器對(duì)應(yīng)用的測(cè)試,這里對(duì)模擬器的資料做了詳細(xì)整理,有興趣的小伙伴可以參考下
    2016-08-08
  • Android Viewpager實(shí)現(xiàn)無(wú)限循環(huán)輪播圖

    Android Viewpager實(shí)現(xiàn)無(wú)限循環(huán)輪播圖

    這篇文章主要為大家詳細(xì)介紹了Android Viewpager實(shí)現(xiàn)無(wú)限循環(huán)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Android 新手入門(mén)體驗(yàn)

    Android 新手入門(mén)體驗(yàn)

    本篇文章小編為大家介紹,Android 新手入門(mén)體驗(yàn)。需要的朋友參考下
    2013-04-04
  • Android繪制雙折線圖的方法

    Android繪制雙折線圖的方法

    這篇文章主要為大家詳細(xì)介紹了Android繪制雙折線圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 快速掌握Android屏幕的知識(shí)點(diǎn)

    快速掌握Android屏幕的知識(shí)點(diǎn)

    相信不少設(shè)計(jì)師和工程師都被安卓設(shè)備紛繁的屏幕搞得暈頭轉(zhuǎn)向,我既做UI設(shè)計(jì),也做過(guò)一點(diǎn)安卓界面布局,剛好對(duì)這塊內(nèi)容比較熟悉,所以在此我將此部分知識(shí)重新梳理出來(lái)分享給大家!有需要的朋友們可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • Android Data Binding數(shù)據(jù)綁定詳解

    Android Data Binding數(shù)據(jù)綁定詳解

    本文主要介紹Android Data Binding數(shù)據(jù)綁定的知識(shí),這里整理了詳細(xì)的資料及簡(jiǎn)單示例代碼幫助大家學(xué)習(xí)理解此部分知識(shí),有需要的小伙伴可以參考下
    2016-09-09
  • Android使用GridView實(shí)現(xiàn)日歷的方法

    Android使用GridView實(shí)現(xiàn)日歷的方法

    本篇文章主要介紹了Android使用GridView實(shí)現(xiàn)日歷的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Android onClick按鈕單擊事件的四種常用寫(xiě)法

    Android onClick按鈕單擊事件的四種常用寫(xiě)法

    本文主要介紹了Android onClick按鈕單擊事件的四種常用寫(xiě)法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03

最新評(píng)論

吕梁市| 金堂县| 安图县| 正安县| 永定县| 剑川县| 进贤县| 封丘县| 宜城市| 板桥市| 舟山市| 泾阳县| 贵定县| 兴义市| 赫章县| 罗平县| 子长县| 托克托县| 永清县| 和林格尔县| 砀山县| 北海市| 青阳县| 松溪县| 莱西市| 磴口县| 永昌县| 新密市| 浦江县| 彰化县| 泾川县| 怀仁县| 仙桃市| 西吉县| 安岳县| 鹿邑县| 尉犁县| 木兰县| 新兴县| 冕宁县| 西城区|