import java.util.ArrayList;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.app.ProgressDialog;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ThreadActivity extends Activity {
private ListView stuListview = null; //listview
private ProgressDialog progress = null; //dialog
private ArrayAdapter<String> adapter;
private ArrayList<String> stuList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_thread);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.thread, menu);
return true;
}
/**单击按钮去 加载学生*/
public void loadStuList(View v){
stuList.clear(); //清空
stuListview = (ListView)findViewById(R.id.stulistview1);
progress = ProgressDialog.show(ThreadActivity.this,"提示","学生信息数据加载中....");
Thread myThread = new StuThread(handler);
myThread.start();
}
/**多线程做完后要处理的事情*/
private final Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
int state=msg.getData().getInt("state");
switch(state){
case 1:progress.dismiss();//取消
Toast.makeText(getApplicationContext(),"学生加载完成!",Toast.LENGTH_SHORT).show();
adapter = new ArrayAdapter<String>(ThreadActivity.this,android.R.layout.simple_expandable_list_item_1,stuList);
stuListview.setAdapter(adapter); break;
case 0:break;
}
};
};
/** 准备一个线程:处理耗时久的业务*/
private class StuThread extends Thread{
private Handler handler; //接收handler
public StuThread(Handler handler){
this.handler = handler;
}
@Override
public void run(){
Message msg = handler.obtainMessage();
Bundle b = new Bundle();
b.putInt("state", 1);
for (int i = 0; i < 20; i++) {
stuList.add("学生stu"+i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
b.putInt("state", 0);
e.printStackTrace();
}
}
msg.setData(b); //设置值
handler.sendMessage(msg); //发送消息到主线程
}
}
}
xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ThreadActivity"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="加载学生信息"
android:onClick="loadStuList" />
<ListView
android:id="@+id/stulistview1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>