2017-05-30 14 views
-2

私はAndroid開発のコースを取っているので、私はこのすべてをかなり新しくしています。私はインテントを通して連絡先を取得し、連絡先のIDと名前を取得し、それをListViewに表示する必要があります。
私はコースからの指示に従おうとしましたが、動作させることができません。私は "誰かを招待する"ボタンを押すとクラッシュします。ここ

はActiivtyです:インテントを使用しているAndroidコンタクトコンテンツプロバイダ

<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" /> 

、これは、対応するJavaファイル内のコードです:

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(); 
      } 
     } 
    } 
} 
} 

誰かが助けることができますか?

編集:私はAndroidのモニタでこのmeassageを得る:

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) 
+0

定義:*あなたが探しているものがわからないのですが、プログラマーはユーザーではありません。 – Selvin

+0

Androidのモニターから元の投稿にメッセージを追加しました。アプリは終了し、古い「残念なことに」アプリは「停止しました」というメッセージがポップアップします。 – R0ede

+0

私はlogcatのログについて考えていた...例外は自明である – Selvin

答えて

0

私はそれを自分で解決しました。 私はビューをビューに追加するのを忘れました

編集:下記に私はビューをpickContact()メソッドに追加しました。

+1

*私の意図にビューのビューを追加するのを忘れていた* ...むしろ 'pickContact'メソッドのパラメータとして' View view'を – Selvin

+0

はい、あなたの権利。私は自分の答えを編集しました。私はまだ問題がありますが、それについて新しい質問を開くのがよいのかどうか分かりません。 – R0ede

+0

まず最初に、新しい例外を読んでください。**次にそれをGoogleに試してください。** ...同様の質問が見つからない場合(そして例外/問題はこの質問とは異なります)、次に別の質問をしてください – Selvin

関連する問題