Wie aktualisiere ich ListView nach onResume von einer anderen Aktivität?

Ich versuche, eine Anwendung zu erstellen, die es dem Benutzer ermöglicht, ein Ereignis zu erstellen, und lade dann einen Teilnehmer ein. Wenn der Benutzer nach Eingabe aller Informationen zur Seite "Teilnehmer hinzufügen" wechselt, wird versucht, mithilfe von onResume () zur Seite "Teilnehmerliste" zurückzukehren. Wie wird die Listenansicht aktualisiert? Ich habe versucht, notifyDataSetChanged () zu verwenden, aber nicht funktioniert.

Hier ist der Code für die Teilnehmerliste:

public class EventPage extends ListActivity implements OnClickListener {
Intent intent;
TextView friendId;
EventController controller = new EventController(this);
TabHost th;
Button addparticipant;
String eventId;
ListView lv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.eventpage);
    addparticipant = (Button) findViewById(R.id.addpart);
    addparticipant.setOnClickListener(this);
    // create tabs
    th = (TabHost) findViewById(R.id.tabhost);

    th.setup();
    TabSpec specs = th.newTabSpec("tag1"); // setting up a tabspec in
                                            // tabhost(th) call it tag1
    specs.setContent(R.id.tab1);// set content of "tab1" xml
    specs.setIndicator("Participants");
    th.addTab(specs);
    specs = th.newTabSpec("tag2"); // setting up a tabspec in tabhost(th)
                                    // call it tag1
    specs.setContent(R.id.tab2);// set content of "tab1" xml
    specs.setIndicator("Total Expenses");
    th.addTab(specs);
    specs = th.newTabSpec("tag3"); // setting up a tabspec in tabhost(th)
    HashMap<String, String> queryValues = new HashMap<String, String>();
    Intent objIntent = getIntent();
    eventId = objIntent.getStringExtra("eventId");
    queryValues.put("eventId", eventId);
    ArrayList<HashMap<String, String>> friendList = controller
            .getAllFriends(queryValues);
    if (friendList.size() != 0) {
        lv = getListView();
        lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                friendId = (TextView) view.findViewById(R.id.friendId);
                String valFriendId = friendId.getText().toString();
                Intent objIndent = new Intent(getApplicationContext(),
                        EventPage.class);
                objIndent.putExtra("friendId", valFriendId);
                startActivity(objIndent);
            }
        });
        SimpleAdapter adapter = new SimpleAdapter(EventPage.this,
                friendList, R.layout.view_friend_entry, new String[] {
                        "friendId", "friendName" }, new int[] {
                        R.id.friendId, R.id.friendName });
        adapter.notifyDataSetChanged();
        setListAdapter(adapter);
        registerForContextMenu(lv);
    }
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent objIntent = new Intent(getApplicationContext(),
            AddParticipant.class);
    objIntent.putExtra("eventId", eventId);
    startActivity(objIntent);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    String[] menuItems = getResources().getStringArray(R.array.menu);
    for (int i = 0; i < menuItems.length; i++) {
        menu.add(Menu.NONE, i, i, menuItems[i]);
    }
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    int menuItemIndex = item.getItemId();
    switch (menuItemIndex) {
    case 0:
        friendId = (TextView) findViewById(R.id.friendId);
        String valFriendId = friendId.getText().toString();
        Intent objIndent = new Intent(getApplicationContext(),
                EditParticipant.class);
        objIndent.putExtra("friendId", valFriendId);
        startActivity(objIndent);
        break;
    case 1:
        friendId = (TextView) findViewById(R.id.friendId);
        String valFriendId2 = friendId.getText().toString();
        controller.deleteFriend(valFriendId2);
        onResume();
    }

    return true;
}

Dies ist der Code für das Hinzufügen eines Teilnehmers, an dem onResume () beteiligt war:

public class AddParticipant extends Activity implements OnClickListener{

EditText friendName;
EditText friendNumber;
EditText friendEmail;
EventController controller = new EventController(this);
Button btnadd;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addparticipant);
    friendName = (EditText) findViewById(R.id.friendName);
    friendNumber = (EditText) findViewById(R.id.friendNumber);
    friendEmail = (EditText) findViewById(R.id.friendEmail);
    btnadd = (Button)findViewById(R.id.saveButton);
    btnadd.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    HashMap<String, String> queryValues = new HashMap<String, String>();
    Intent objIntent = getIntent();
    String eventId = objIntent.getStringExtra("eventId");
    queryValues.put("eventId", eventId);
    queryValues.put("friendName", friendName.getText().toString());
    queryValues.put("friendNumber", friendNumber.getText().toString());
    queryValues.put("friendEmail", friendEmail.getText().toString());
    controller.insertFriend(queryValues);
    this.callHomeActivity(v);
    finish();
}

public void callHomeActivity(View view) {
    super.onResume();
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage