Ich nehme einen Kurs in Android-Entwicklung und damit bin ich ziemlich neu zu diesem Ganzen. Ich muss einen Kontakt über eine Absicht herstellen, die ID und den Namen des Kontakts abrufen und in einem ListView anzeigen.
Ich habe versucht, Anweisungen aus meinem Kurs zu folgen, aber ich kann es einfach nicht zum Laufen bringen. es stürzt ab, wenn ich auf den "jemanden einladen" -Button klicke.
hier ist die Actiivty:Android Contact Content Provider mit Absicht
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Invite someone"
android:onClick="pickContact"/>
<TextView
android:id="@+id/contactTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="contact here" />
und dies ist der Code in der entsprechenden Java-Datei:
public class Event extends AppCompatActivity {
TextView myContactTextView;
private static int PICK_CONTACT_REQ = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_event);
myContactTextView = (TextView) findViewById(R.id.contactTextView);
}
public void pickContact() {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(pickContactIntent, PICK_CONTACT_REQ);
onActivityResult();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQ) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
// The user picked a contact.
// The Intent's data Uri identifies which contact was selected.
ContentResolver resolver = getContentResolver();
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
try {
myContactTextView.setText("Your device has these contacts");
if (cursor.getCount() > 0) {
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int nameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
while (cursor.moveToNext()) {
int id = cursor.getInt(idColumn);
String contactName = cursor.getString(nameColumn);
myContactTextView.append(("\n" + id + "-" + contactName));
}
}
} finally {
cursor.close();
}
}
}
}
}
kann jemand helfen?
edit: ich dieses meassage im Android Monitor:
05-30 11:05:30.539 18746-18746/com.company.reds.awesomeapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.company.reds.awesomeapp, PID: 18746
java.lang.IllegalStateException: Could not find method pickContact(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button'
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:327)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:5207)
at android.view.View$PerformClick.run(View.java:21168)
at android.os.Handler.handleCallback(Handler.java:746)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5443)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
definieren: * es stürzt * (wie ein Programmierer kein Benutzer) – Selvin
nicht sicher, ob das, was Sie suchen, aber ich habe die Nachricht aus dem Android-Monitor im ursprünglichen Beitrag hinzugefügt. Die App schließt sich und die alte "leider" App "hat aufgehört" erscheint. – R0ede
Ich dachte über logcat Protokoll ... Ausnahme ist selbsterklärend – Selvin