2016-04-22 129 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); 
} 

这是只获得号码,但我也想得到的名称。

这就是logcat的说:

产生的原因:显示java.lang.NullPointerException:试图调用虚拟 法 '无效android.widget.TextView.setText(java.lang.CharSequence中的)' 上的空对象引用 在 com.example.luke.percentagegradecalculator.SendText.onCreate(SendText.java:28) 在android.app.Activity.performCreate(Activity.java:6020) 在 android.app.Instrumentation .callActivityOnCreate(仪表的.java:1105) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368) 在android.app.ActivityThread.access $ 800(在Android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop()。 (Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5292) 在java.lang.reflect.Method.invoke(本地方法) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit的.java:908) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

我曾经打算去另一个Java类和布局,并获得额外并设置一个TextView到PhoneNumberStr。我相信这个字符串是空的。请帮帮我!

+0

发布oncreate方法和类/活动变量... –

+0

@ΦXoce웃Пepeúpa我只是做了 – LUKER

回答

0

Android中的intentactivity类2个不同的东西,这是这里的错误...

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

您与您已经定义了自己的意图构建一个意图对象...这是不去上班......

你要改变,要

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

其中SendTextActivity.class是一个扩展的类android Activity class

+0

这是错误的。意图有两个需要去做的事情:上下文和java类。我不是从哪里得到活动的想法。我实际上在另一个可以正常工作的项目中使用完全相同的代码(不同的Java类名称和意图名称)。谢谢你尝试。 – LUKER

+0

嗯,看看这个如果你认为是错的:http://developer.android。com/training/basics/firstapp/starting-activity.html –

+0

“注意:对DisplayMessageActivity(Activity是Java类的另一个名称)的引用将引发错误,因为该类不会使用类似Android Studio的IDE '现在还不存在,现在忽略这个错误,你很快就会创建这个类。“ @ΦXoce웃佩佩普帕 – LUKER

相关问题