Wicki12
- Forum-Beiträge: 38
24.05.2012, 19:03:46 via Website
24.05.2012 19:03:46 via Website
Hallo,
ich möchte die Kontaktliste meines Geräts anzeigen und über einen Filter die Daten reduzieren, das funktioniert auch mit der im Code angegebenen ListActivity. Diese Activity möchte ich nun so erweitern, dass über der ListView ein "EditText" angezeigt wird, wo der Filtertext einzugeben ist.
Ich weiss nun nicht, wie ich die Listenelemente der ListView aus meiner main.xml zuordnen kann.
Bitte um Hilfe.
Gruss Wicki
ich möchte die Kontaktliste meines Geräts anzeigen und über einen Filter die Daten reduzieren, das funktioniert auch mit der im Code angegebenen ListActivity. Diese Activity möchte ich nun so erweitern, dass über der ListView ein "EditText" angezeigt wird, wo der Filtertext einzugeben ist.
Ich weiss nun nicht, wie ich die Listenelemente der ListView aus meiner main.xml zuordnen kann.
Bitte um Hilfe.
1import android.app.ListActivity;
2import android.content.Intent;
3import android.database.Cursor;
4import android.database.CursorWrapper;
5import android.net.Uri;
6import android.os.Bundle;
7import android.provider.ContactsContract;
8import android.provider.ContactsContract.Contacts;
9import android.view.View;
10import android.widget.AdapterView;
11import android.widget.AdapterView.OnItemClickListener;
12import android.widget.EditText;
13import android.widget.ListAdapter;
14import android.widget.ListView;
15import android.widget.SimpleCursorAdapter;
16
17public class MiniContacts extends ListActivity {
18
19 private Cursor cursorContacts;
20
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24// setContentView(R.layout.main);
25// EditText ed = (EditText)findViewById(R.id.editText1);
26 // Kontaktliste ermitteln
27 String filter="display_name like 'xyz%'";
28 cursorContacts = getContentResolver().query(
29 ContactsContract.Contacts.CONTENT_URI, null, filter, null, null);
30 startManagingCursor(cursorContacts);
31 // bildet Datensätze auf Listenelemente ab
32 ListAdapter adapter = new SimpleCursorAdapter(this,
33 android.R.layout.simple_list_item_1, cursorContacts,
34 new String[] { Contacts.DISPLAY_NAME },
35 new int[] { android.R.id.text1 });
36 setListAdapter(adapter);
37 getListView().setOnItemClickListener(new OnItemClickListener() {
38
39 @Override
40 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
41 Object o = getListAdapter().getItem(position);
42 if (o instanceof CursorWrapper) {
43 // Welcher Datensatz?
44 CursorWrapper w = (CursorWrapper) o;
45 int columnIndex = w.getColumnIndex(Contacts._ID);
46 long contactId = w.getLong(columnIndex);
47 Uri uri = Uri.withAppendedPath(
48 ContactsContract.Contacts.CONTENT_URI,
49 Long.toString(contactId));
50 // Kontakt anzeigen
51 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
52 startActivity(intent);
53 }
54 }
55 });
56
57 }
58
59 @Override
60 protected void onDestroy() {
61 super.onDestroy();
62 stopManagingCursor(cursorContacts);
63 }
64}
2import android.content.Intent;
3import android.database.Cursor;
4import android.database.CursorWrapper;
5import android.net.Uri;
6import android.os.Bundle;
7import android.provider.ContactsContract;
8import android.provider.ContactsContract.Contacts;
9import android.view.View;
10import android.widget.AdapterView;
11import android.widget.AdapterView.OnItemClickListener;
12import android.widget.EditText;
13import android.widget.ListAdapter;
14import android.widget.ListView;
15import android.widget.SimpleCursorAdapter;
16
17public class MiniContacts extends ListActivity {
18
19 private Cursor cursorContacts;
20
21 @Override
22 public void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24// setContentView(R.layout.main);
25// EditText ed = (EditText)findViewById(R.id.editText1);
26 // Kontaktliste ermitteln
27 String filter="display_name like 'xyz%'";
28 cursorContacts = getContentResolver().query(
29 ContactsContract.Contacts.CONTENT_URI, null, filter, null, null);
30 startManagingCursor(cursorContacts);
31 // bildet Datensätze auf Listenelemente ab
32 ListAdapter adapter = new SimpleCursorAdapter(this,
33 android.R.layout.simple_list_item_1, cursorContacts,
34 new String[] { Contacts.DISPLAY_NAME },
35 new int[] { android.R.id.text1 });
36 setListAdapter(adapter);
37 getListView().setOnItemClickListener(new OnItemClickListener() {
38
39 @Override
40 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
41 Object o = getListAdapter().getItem(position);
42 if (o instanceof CursorWrapper) {
43 // Welcher Datensatz?
44 CursorWrapper w = (CursorWrapper) o;
45 int columnIndex = w.getColumnIndex(Contacts._ID);
46 long contactId = w.getLong(columnIndex);
47 Uri uri = Uri.withAppendedPath(
48 ContactsContract.Contacts.CONTENT_URI,
49 Long.toString(contactId));
50 // Kontakt anzeigen
51 Intent intent = new Intent(Intent.ACTION_VIEW, uri);
52 startActivity(intent);
53 }
54 }
55 });
56
57 }
58
59 @Override
60 protected void onDestroy() {
61 super.onDestroy();
62 stopManagingCursor(cursorContacts);
63 }
64}
Gruss Wicki
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.