1. 程式人生 > >怎樣使用ListView?

怎樣使用ListView?

idg save 數據 idle string water family abs launch

怎樣使用ListView?


技術分享
技術分享
技術分享
技術分享
技術分享

ArrayAdapter的使用

package com.mengmeng.android_listview;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemClickListener  {

	private ListView mListView;
	private ArrayAdapter<String> mArray_Adapter;
	private SimpleAdapter mSimpleAdapter;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mListView = (ListView) findViewById(R.id.listView);
		//載入數據源
		String[] str = {"大眼萌1","大眼萌2","大眼萌3","大眼萌4","大眼萌5"};
		
		mArray_Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, str);
		mListView.setAdapter(mArray_Adapter);
		
		mListView.setOnItemClickListener(this);
	}

	//監聽
	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		String text = mListView.getItemAtPosition(arg2)+"";
		Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
	}
}

simpleAdapter的使用

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		mListView = (ListView) findViewById(R.id.listView);
		
		getData();
		mSimpleAdapter = new SimpleAdapter
				(this, list, R.layout.list_item, new String[] {"text","image"}, new int[] {R.id.text,R.id.image});
		mListView.setAdapter(mSimpleAdapter);	
	}

	private List<Map<String,Object>> getData(){
		list = new ArrayList<Map<String,Object>>();
		Map<String,Object> map1 = new HashMap<String, Object>();
		map1.put("text", "java");
		map1.put("image", R.drawable.ic_launcher);
		
		Map<String,Object> map2 = new HashMap<String, Object>();
		map2.put("text", "javaScript");
		map2.put("image", R.drawable.ic_launcher);
		
		Map<String,Object> map3 = new HashMap<String, Object>();
		map3.put("text", "C++");
		map3.put("image", R.drawable.ic_launcher);
		
		Map<String,Object> map4 = new HashMap<String, Object>();
		map4.put("text", "Android");
		map4.put("image", R.drawable.ic_launcher);
		
		Map<String,Object> map5 = new HashMap<String, Object>();
		map5.put("text", "web");
		map5.put("image", R.drawable.ic_launcher);
		
		list.add(map1);
		list.add(map2);
		list.add(map3);
		list.add(map4);
		list.add(map5);
		
		return list;
	}


<h3>使用OnScollListener()  notifyDataSetChanged()</h3>@Override
public void onScroll(AbsListView view, int firstVisibleItem,
		int visibleItemCount, int totalItemCount) {
	// TODO Auto-generated method stub
	
}

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {

	if(scrollState == SCROLL_STATE_FLING){//用力劃一下
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("text", "正在加入"+i++);
		map.put("image", R.drawable.ic_launcher);
		list.add(map);
		<strong>mSimpleAdapter.notifyDataSetChanged();</strong>
		Toast.makeText(this, "正在滾動...", Toast.LENGTH_SHORT).show();
		
	}else if(scrollState == SCROLL_STATE_IDLE){//停止滾動
		
	}else if(scrollState == SCROLL_STATE_TOUCH_SCROLL){//正在滾動
		
	}




技術分享

怎樣使用ListView?