-3
我想從聯繫人列表中獲取姓名和號碼並將其顯示在文本中。代碼的問題是,首先它不會顯示我的聯繫人列表中的所有聯繫人,其次我只嘗試在文本視圖中設置名稱,然後它完美地工作,但是當我嘗試在其他文本視圖中添加數字時,則應用程序崩潰。來自聯繫人列表的Android聯繫人號碼
下面是代碼:
package com.example.hasnainabidkz.getcontactnum;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
public static final int PICK_CONTACT = 1;
private Button btnContacts;
private TextView txtContacts1;
private TextView txtContacts2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnContacts = (Button) findViewById(R.id.btn_contacts);
txtContacts1 = (TextView) findViewById(R.id.txt_contacts_name);
txtContacts2 = (TextView) findViewById(R.id.txt_contacts_number);
btnContacts.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
}
});
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c.getColumnIndexOrThrow(People.NAME));
int number=c.getInt(c.getColumnIndexOrThrow(People.NUMBER));
txtContacts1.setText(name);
txtContacts2.setText(number);
}
}
break;
}
}
}
「那麼應用程序崩潰。」顯示堆棧跟蹤 – Zoe
該活動可以定義與視圖中不同的ID。它可能是一個nullpointerexception。這可能是很多事情,並且堆棧跟蹤對於縮小問題是必要的。 – Zoe