您的位置:首页 > 其它

英语学习资料

2012-08-17 20:59 288 查看
package com.sagaware.process.list;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.app.ListActivity;

import android.content.Context;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.ListView;

import android.widget.ProgressBar;

import android.widget.SimpleAdapter;

import android.widget.TextView;

/**

* ListView每行都 显示一个process dialog

* @author lyl

*

* 代码简单,就不书写备注了。

*/

public class ProcessBarListActivity extends ListActivity {

private ListView mView = null;

private SimpleAdapter mAdapter = null;

private Map<Integer, Integer> map = new HashMap<Integer, Integer>();

private MyView view;

Handler handler = new Handler(){

public void handleMessage(Message msg) {

mAdapter.notifyDataSetChanged();

};

};

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

List<Map<String, Object>> data = getData();

mView = getListView();

mAdapter = new MyAdapter(this, data, R.layout.main, new String[] { "name" }, new int[] { R.id.name });

mView.setAdapter(mAdapter);

}

private List<Map<String, Object>> getData() {

List<Map<String, Object>> dataList = new ArrayList<Map<String, Object>>();

for (int i = 1; i <= 30; i++) {

Map<String, Object> map = new HashMap<String, Object>();

map.put("name", i + "");

dataList.add(map);

}

return dataList;

}

private class MyAdapter extends SimpleAdapter {

private Context context;

private int resource;

public MyAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {

super(context, data, resource, from, to);

this.context = context;

this.resource = resource;

}

@Override

public View getView(final int position, View convertView, ViewGroup parent) {

if (convertView == null) {

view = new MyView();

convertView = LayoutInflater.from(context).inflate(resource, parent, false);

convertView.setTag(view);

} else {

view = (MyView) convertView.getTag();

}

int process = map.get(position) == null ? 0 : map.get(position);

view.bar = (ProgressBar) convertView.findViewById(R.id.bar);

view.bar.setProgress(process);

view.textView = (TextView) convertView.findViewById(R.id.percent);

view.textView.setText(process + "%");

view.button = (Button) convertView.findViewById(R.id.but);

view.button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if(map != null && map.get(position) == null){

new Thread(){

public void run(){

for(int i = 1; i <= 100; i++){

map.put(position, i);

Message message = new Message();

message.getData().putInt("position", position);

handler.sendMessage(message);

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}.start();

}

}

});

return convertView;

}

}

static class MyView {

ProgressBar bar ;

TextView textView ;

Button button ;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: