我正在尝试从联系人列表视图中获取电话号码和姓名。这就是我到目前为止所做的:
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:尝试调用虚拟 方法'void android.widget.TextView.setText(java.lang.CharSequence)' 在null对象引用上 在 com.example.luke.percentagegradecalculator.SendText.onCreate(SendText.java:28) 在android.app.Activity.performCreate(Activity.java:6020) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368) 在android.app.ActivityThread.access $ 800(ActivityThread.java:149) 在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1284) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5292) at java.lang.reflect.Method.invoke(Native Method) 在java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:908) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
我曾意图去另一个java类和布局并获取额外内容并将textview设置为PhoneNumberStr。我相信字符串是null。请帮帮我!
答案 0 :(得分:0)
在android中intent和activity类是2个不同的东西,这就是错误......
Intent SendText = new Intent(context, SendText.class);
你正在构建一个具有你已经定义的意图本身的意图对象......这不会起作用......
您必须将其更改为
Intent myIntent = new Intent(context, SendTextActivity.class);
其中SendTextActivity.class
是一个扩展android Activity class