2012-03-01 99 views
0

每當我按下手機上的「禁用」列表視圖使我無法按下它時,我一直遇到麻煩。我發現了一個工作的解決方案,它將重新填充onWindowFocusChanged的listview,但是我在這個類中實現它有問題。我的populateListView方法如何在這個類中看起來像?在WindowFocusChanged上填充ListView

public class AvailableNumbersActivity extends ListActivity // implements CallerIdListener 
{ 
Context context; 
UserController userControl; 
private String[] newnumber = {""}; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context = this; 

    userControl = new UserController(context); 
    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) 
    { 
     newnumber[0] = ((TextView) view).getText().toString(); 
     new PushNumberTask().execute(newnumber); 
    } 
    }); 

    new PullNumbersTask(context).execute(); 

} 

@Override 
public void onWindowFocusChanged(boolean hasFocus) 
{ 
    super.onWindowFocusChanged(hasFocus); 

    populateListView(); 
} 

private void populateListView() { 
    // TODO Auto-generated method stub 

} 

private class PullNumbersTask extends AsyncTask<Void, Void, String[]> 
{ 
    private Context ctx; 

    public PullNumbersTask(Context context) 
    { 
     super(); 
     this.ctx=context; 
    } 
    private ProgressDialog Dialog = new ProgressDialog(getParent()); 

    protected void onPreExecute() 
    { 
     Dialog.setMessage("Henter tilgængelige numre.."); 
     Dialog.show(); 
    } 

    @Override 
    protected String[] doInBackground(Void... arg0) { 
     return (userControl.GetNumbers()); 
    } 


    protected void onPostExecute(String[] result) 
    { 
     setListAdapter(new ArrayAdapter<String>(ctx, R.layout.numbers_items, result)); 
     Dialog.dismiss(); 
    } 



} 

回答

0

我不太確定我完全瞭解你的問題,但如果你需要刷新ListView,你應該將ArrayAdapter保存爲活動的成員,並呼籲它notifyDataSetChanged()onWindowFocusChanged處理程序。