У меня возникали проблемы при повторном нажатии на моем телефоне, которые «отключали» мой просмотр списка, что делало невозможным его нажатие. Я нашел рабочее решение, которое должно было бы снова заполнить представление списка на WindowFocusChanged, но у меня возникли проблемы с его реализацией в этом классе. Как будет выглядеть мой метод populateListView в этом классе?
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();
}
}