2016-04-22 20 views
0

連絡先リストビューから電話番号と名前を取得しようとしています。これは今まで私が持っているものです:連絡先から電話番号と名前を取得ListView

ListView lv; 
Cursor cursor1; 
Context context; 
String phoneNumberStr; 


@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.contacts_screen_x); 

    context = this; 

    cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 
    startManagingCursor(cursor1); 




    String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; 

    int[] to = {android.R.id.text1, android.R.id.text2}; 

    SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor1, from, to); 

    setListAdapter(listAdapter); 

    lv = getListView(); 
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      int PhoneNumber = cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 
      phoneNumberStr = cursor1.getString(PhoneNumber); 
      Intent SendText = new Intent(context, SendText.class); 
      SendText.putExtra("PhoneNumber", phoneNumberStr); 
      startActivity(SendText); 
     } 
    }); 

    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
} 

これは数値を取得するだけですが、私はその名前を取得したいと思います。 java.lang.NullPointerExceptionが:によって引き起こさ

を:

これはlogcatが言うことである仮想 メソッドを呼び出そうと '無効android.widget.TextView.setText(java.lang.CharSequence') android.app.Instrumentationでandroid.app.Activity.performCreate(Activity.java:6020) でcom.example.luke.percentagegradecalculator.SendText.onCreate(SendText.java:28) におけるNULLオブジェクト参照 に.allActivityOnCreate(計装.javaファイル:1105) でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) でandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368) android.app.ActivityThread.access $ 800から( android.os.Looper.loopでandroid.os.Handler.dispatchMessage(Handler.java:102) で android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1284) でActivityThread.java:149) (Looper.java:135) android.app.ActivityThread.main(ActivityThread.java:5292) (ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit .javaファイル:私は別のJavaクラスやレイアウトに移動し、エキストラを取得してのTextViewを設定する意図を使用com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

で908) PhoneNumberStrに転送します。私は文字列がnullであると信じています。私を助けてください!

+0

投稿するoncreateメソッドとクラス/アクティビティの変数... –

+0

@ΦXoceSmilingПepeúpa私はちょうど – LUKER

答えて

0

アンドロイドでintentactivityクラスが2つの異なるものです、ここでは、これは誤りである...

Intent SendText = new Intent(context, SendText.class); 

あなたはすでに定義意思自体に意思オブジェクトを構築している...それはありますあなたはSendTextActivity.classがどこにある

Intent myIntent = new Intent(context, SendTextActivity.class); 

にそれを変更する必要が...

を仕事に行くのではありませんandroid Activity class

+0

でした。それは間違っています。インテントには、コンテキストとJavaクラスの2つの要素があります。私は活動のアイデアをどこから得たのか分かりません。私は実際に正常に動作する別のプロジェクトで同じコード(別のJavaクラス名とインテント名)を使用しました。試してくれてありがとう。 – LUKER

+0

ummmあなたが間違っていると思うなら、これを見てください:http://developer.android。com/training/basics/firstapp/starting-activity.html –

+0

"注:DisplayMessageActivity(ActivityはJavaクラスの別の名前です)は、AndroidスタジオなどのIDEを使用している場合にエラーを発生させます。なぜなら、クラスdoesnあなたはすぐにエラーを無視してください;すぐにクラスを作成します。 @ΦXo笑Пepeúpa – LUKER

関連する問題