1
以下是这种情况:我需要在ListActivity中运行一些冗长的非UI代码,然后让此ListActivity更新UI以包含此冗长方法(列表)的结果。我需要一个ProgressDialog运行,直到完成,这样用户才有一些反馈。Android线程问题
下面的代码:
public class SolutionListActivity extends ListActivity
{
private String[] solutions;
private String letters;
private ProgressDialog dialog;
private static Solver solver;
/** Called when the activity is first created.
* @param savedInstanceState
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//Get the selected letters from LettersActivity
letters = getIntent().getStringExtra("letters");
dialog = ProgressDialog.show(this, "Please Wait...",
"Searching Words...", true);
new Thread()
{
@Override
public void run()
{
if (solver == null)
{
solver = new Solver(SolutionListActivity.this);
solver.readDictionary(0);
solver.readDictionary(1);
}
solutions = solver.solve(letters);
runOnUiThread(new Runnable()
{
@Override
public void run()
{
dialog.dismiss();
//Set up a UI List
setListAdapter(new ArrayAdapter<String>(SolutionListActivity.this, R.layout.list_item, solutions));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
}
});
}
}.start();
问题是我的ProgressDialog
不会解雇我不能肯定是否UI使用它setListAdapter(new ArrayAdapter<String>(SolutionListActivity.this, R.layout.list_item, solutions));
任何意见前solutions = solver.solve(letters);
将完成你们会有帮助的。
谢谢你, Calum
嗯......其实我试过,这样过,但我已经忘记了它,因为现在的工作我一定是不使用它的权利。绝对年龄虽然...非常感谢。 – 2011-06-04 18:40:51