У меня есть пользовательский BaseAdapter и кнопка добавления в основной активности. Кнопка открывает диалог с текстовым полем, и таким образом можно добавлять новые элементы в список. Проблема в том, что список не обновляется. В функции onActivityResult() я печатаю количество элементов в списке, и каждый раз, когда я нажимаю кнопку OK в диалоговом окне, количество увеличивается, поэтому я знаю, что просто не работает обновление. Мой BaseAdapter и моя активность:
class ListaOrase extends BaseAdapter{
private Activity context;
ArrayList<String> orase;
public ListaOrase(Activity context){
this.context=context;
orase=new ArrayList<String>();
}
public void add(String string){
orase.add(string);
this.notifyDataSetChanged();
}
public View getView (int position, View convertView, ViewGroup list) {
View element;
if (convertView == null)
{
LayoutInflater inflater = context.getLayoutInflater();
element = inflater.inflate(R.layout.lista, null);
}
else element = convertView;
TextView elementLista=(TextView)element.findViewById(R.id.elementLista);
elementLista.setText(orase.get(position));
return element;
}
}
public class WeatherAppActivity extends ListActivity {
Button buton;
ListaOrase lista;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lista=new ListaOrase(this);
buton=(Button)findViewById(R.id.buton);
lista.add("Bucuresti");
lista.add("Sibiu");
setListAdapter(lista);
}
public void add(View view){
Intent intent=new Intent();
intent.setClass(this, Adauga.class);
startActivityForResult(intent, 0);
}
public void onActivityResult (int requestCode, int responseCode, Intent data){
System.out.println("Apelata");
if(responseCode==1){
lista.add(data.getStringExtra("oras")); // e chiar getText()
System.out.println(lista.getCount());
lista.notifyDataSetChanged();
}
}
}
Как вы видите, я пытаюсь обновить (notifyDataSetChanged();) как при добавлении нового элемента (в расширяющем классе BaseAdapter), так и в методе onActivityResult, после того как диалог передает новый элемент в главную Activity. Повторяю, элемент добавляется в список, потому что счетчик увеличивается, он просто не обновляется.
Спасибо за ответы!