閱讀325 返回首頁    go 阿裏雲 go 技術社區[雲棲]


我項目中使用到的以object作為參數的簡單整理

1.android中使用simpleadapter創建自定義的listview

XML部分:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:andro
	android:orientation="vertical"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	>
<!-- 定義一個List -->
<ListView android:
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	/>
<!-- 定義一個ImageView,用於作為列表項的一部分。 -->
<ImageView android:
	android:layout_width="wrap_content"
	android:layout_height="wrap_content" 
	android:paddingLeft="10dp"
	/>
<!-- 定義一個TextView,用於作為列表項的一部分。 -->
<TextView android:
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content"
	android:textSize="16dp"
	android:gravity="center_vertical"
	android:paddingLeft="10dp"
	/>
</LinearLayout>
android java部分

package com.example.simpleadaptertest;

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

public class SimpleadapterMainActivity extends Activity {

	private String[] names = new String[]
			{ "虎頭", "弄玉", "李清照", "李白"};
		private int[] imageIds = new int[]
			{ R.drawable.tiger , R.drawable.nongyu
				, R.drawable.qingzhao , R.drawable.libai};
		
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simpleadapter_main);
        
		//創建一個List集合,List集合的元素是Map
		List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
		for (int i = 0; i < names.length; i++)
		{
			Map<String, Object> listItem = new HashMap<String, Object>();
			listItem.put("header", imageIds[i]);
			listItem.put("personName", names[i]);
			listItems.add(listItem);
		}
		//創建一個SimpleAdapter
		SimpleAdapter simpleAdapter = new SimpleAdapter(this
			, listItems 
			, R.layout.activity_simpleadapter_main
			, new String[]{ "personName", "header" }
			, new int[]{R.id.name , R.id.header});
		ListView list = (ListView)findViewById(R.id.mylist);
		//為ListView設置Adapter
		list.setAdapter(simpleAdapter);
    }

}


這裏Map<String, Object> listItem = new HashMap<String, Object>();
listItem.put("header", imageIds[i]);
listItem.put("personName", names[i]);

將圖片資源(int)和說明(String)作為Object參數統一傳過來。比較統一。


2.漢柏天氣預報係統中

循環從配置文件中讀取鍵值對

class TimerTaskMine extends TimerTask{
	private static GetInfo get;//調用靜態方法從GetInfo類中獲取網頁信息
	private OperateMysql operate=new OperateMysql();
	@Override
	public void run() {//此計時器任務要執行的操作。
		//Properties可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串
		Properties prop = new Properties();//Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串
		InputStream inputStream = new TestWeather().getClass().getResourceAsStream("/weather_code.properties");//獲取src同級目錄下properties的文件流

		try {
			prop.load(inputStream);//從輸入流中讀取屬性列表
			// System.out.println(prop.getProperty("101020100"));
			Enumeration<?> en = prop.propertyNames();//返回屬性列表中所有鍵的枚舉
			String obj = "";//obj置空
			 //構造器,創建OperateMysql對象
			
			operate.transferMysql();//將臨時表內容轉移到曆史表
			System.out.println("transfer over!");
			
	       operate.truncateMysql();//清空數據庫數據表內容
            System.out.println("truncate over!");
            
			while (en.hasMoreElements()) {//測試此枚舉是否包含更多的元素。

				obj = (String) en.nextElement();//obj即為weather_code.properties中獲得的城市代碼
				// System.out.println(obj);
    
				// get.getInfo(Integer.parseInt(obj));
				get = new GetInfo();
				
				// System.out.println(obj.);
				Object[] data = get.getInfo(obj);//開始獲取城市鍵值對應的相應城市信息
				
				if(null!=data) {
				//把數據插入到數據庫
				operate.insertMysql(obj, data);
				}
			}

		} catch (IOException e) {//抓住IO錯誤
			e.printStackTrace();//打印
		} finally {
			// 關閉IO資源
			try {
				if (null != inputStream)//如果inputStream非空
				{
					inputStream.close();//關閉inputStream
					inputStream = null;//inputStream置空
				}
			} catch (IOException e) {//抓住IO錯誤
				e.printStackTrace();//打印
			}
		}
		
		operate.update99Mysql();//處理99的異常問題

		operate.updateBeijing();//解決ANDROID端的簡略省份city_id需求
		operate.updateTianjin();
		operate.updateShanghai();
		operate.updateChongqin();
		
		System.out.println("99的異常處理結束,所有img2為99的值都替換為對應的img1的值");//99問題異常處理
	}
	
}




最後更新:2017-04-02 22:15:46

  上一篇:go Anddroid如何禁止Gridview上下滑動
  下一篇:go uva 10282 - Babelfish