天天看點

java listview用法_Android ListView使用 | 學步園

ListView是Android中常用的控件之一,用于資料展示。是以需要提供資料供展示,但是資料部呢個直接傳遞給ListView,是以需要擴充卡進行傳遞。

1、簡單的ListView使用

如果展示清單中不需要展示複雜的東西,則使用ArrayAdapter擴充卡就可以實作。執行個體如下:

(1)activity_main.xml

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/list_view1"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

在此布局中個ListView控件。

(2)MainActivity.java

package com.example.testviewlist;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

public class MainActivity extends Activity {

private String[] viewListData = {"姓名:yy","微網誌:殘缺的孤獨","微信公衆号:殘缺的孤獨","工作地:北京","感悟:要麼強大,要麼聽話"};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//擷取ListView

ListView listView = (ListView) findViewById(R.id.list_view1);

//擴充卡

ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, viewListData);

//使用擴充卡傳遞資料

listView.setAdapter(adapter);

//添加點選事件

listView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position,

long id) {

String info = viewListData[position];

Toast.makeText(MainActivity.this, info, Toast.LENGTH_SHORT).show();

}

});

}

@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;

}

}

(3)結果展示

運作,見如下效果:

java listview用法_Android ListView使用 | 學步園

點選效果如下:

java listview用法_Android ListView使用 | 學步園

2、ListView之标題使用

使用SimpleAdapter擴充卡可以實作各種布局,擴充性好。使用SimpleAdapter時,資料一般是由HashMap組成的List,List每一行對應于ListView的一行。HashMap中的key-value資料映射到布局檔案中對應的id元件上。接着上方繼續修改。

(1)activity_main.xml

保持不變

(2)修改MainActivity.java

package com.example.testviewlist;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.Toast;

public class MainActivity extends Activity {

//private String[] viewListData = {"姓名:yy","微網誌:殘缺的孤獨","微信公衆号:殘缺的孤獨","工作地:北京","感悟:要麼強大,要麼聽話"};

private String[] vl_title = {"姓名","微網誌","微信公衆号","工作地","感悟"};

private String[] vl_info = {"yy","殘缺的孤獨","殘缺的孤獨","北京","要麼強大,要麼聽話"};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//擷取ListView對象

ListView listView = (ListView) findViewById(R.id.list_view1);

List> listData= new ArrayList>();;

for(int i=0;i

//組裝Map資料

Map dataMap = new HashMap();

dataMap.put("title", vl_title[i]);

dataMap.put("info", vl_info[i]);

listData.add(dataMap);

}

//擴充卡

SimpleAdapter adapter = new SimpleAdapter(this,listData,android.R.layout.simple_list_item_2,

new String[]{"title","info"},new int[]{android.R.id.text1,android.R.id.text2});

listView.setAdapter(adapter);

//添加點選事件

listView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position,

long id) {

String title = vl_title[position];

String info = vl_info[position];

Toast.makeText(MainActivity.this, title + ": " + info, Toast.LENGTH_SHORT).show();

}

});

}

@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的此構造函數中:第一個參數為上下文,第二個參數為資料,第三個參數是布局檔案,第四個參數為資料項的key,第五個參數為要填充的元件。

(3)效果

效果如下圖展示:

java listview用法_Android ListView使用 | 學步園