So aktualisieren Sie den Android List Adapter, sodass neu hinzugefügte Elemente angezeigt werden
Ich habe an einem Projekt gearbeitet. Es wird nur eine Liste von Aufgaben angezeigt und neue Aufgaben hinzugefügt. Ich habe 3 Klassen. Eine zum Hinzufügen, eine zum Anzeigen und eine zum Speichern aller Informationen (glaube ich).
Ich habe bereits 2 Aufgaben in meiner Liste und sie werden richtig angezeigt.
Das Problem ist, wenn ichhinzufügen Eine neue Aufgabe, bei der sie nicht angezeigt werden. Ich habe viele mögliche Lösungen ausprobiert:
Einfach einen Artikel zur Liste hinzufügen
Erstellen einer neuen Liste, die aus Elementen des alten besteht, und Neuerstellen des Adapters;
mitnotifyDataSetChanged();
zusammen mit dem Befehl add ();
usw.
Hier ist mein Code, es ist ein bisschen chaotisch, aber ich hoffe, Sie werden es herausfinden.
AndroidListAdapterActivity-Klasse:
public class AndroidListAdapterActivity extends ListActivity {
/** Called when the activity is first created. */
Button b1;
Lista o;
ArrayAdapter aa;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1=(Button)findViewById(R.id.add);
Log.w("POC", "PA OVO SE ZOVE SVAKI PUT");
o=new Lista();
o.lis.add("S1");
o.lis.add("S2");
aa = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, o.lis);
setListAdapter(aa);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(AndroidListAdapterActivity.this, Dodavanje.class);
startActivity(i);
}
});
}
@Override
public void onResume(){
super.onResume();
aa.notifyDataSetChanged();
if(o.broj>=2){
aa=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, o.lis2);
setListAdapter(aa);
Log.w("myApp", "CALLED TOO");
}
String yt=String.valueOf(o.ses);
Log.w("teras", yt);
aa.notifyDataSetChanged();
Log.w("myApp", "CaLLED!!!!!!!!!!!!!");
String fx= String.valueOf(o.broj);
Log.w("myAPPe", fx);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
}
Dodavanje (Hinzufügen):
public class Dodavanje extends Activity {
Button but;
Button but2;
EditText et;
Lista o;
AndroidListAdapterActivity www;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dodavanje);
but= (Button)findViewById(R.id.bb);
but2= (Button)findViewById(R.id.bc);
et=(EditText)findViewById(R.id.tt);
www=new AndroidListAdapterActivity();
o = new Lista();
but.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onClick(View arg0) {
String t1= et.getText().toString();
//o.lis.add(t1);
o.lis2.addAll(o.lis);
o.lis2.add(t1);
o.lis.add(t1);
o.ses=true;
Log.w("IZVJESTAJ: ", String.valueOf(o.ses));
o.broj++;
String fx=String.valueOf(o.broj);
Log.w("Izbacaj",fx);
et.setText("");
}
});
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
}
});
}
}
Lista (Liste):
public class Lista extends Application {
ArrayList<String> lis=new ArrayList<String>();
ArrayList<String> lis2=new ArrayList<String>();
int broj =1;
boolean ses= false;
}