无法将数组列表加载到数组适配器中 [英] Couldn't load array list into array adapter

查看:68
本文介绍了无法将数组列表加载到数组适配器中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我想在listView中获取移动联系人和视图。但是我面临错误。

它将在下面显示,

 01-07 12:43:49.381:E / AndroidRuntime(863 ):FATAL EXCEPTION:main 
01-07 12:43:49.381:E / AndroidRuntime(863):java.lang.RuntimeException:无法启动活动ComponentInfo {com.rathnasoft.sample / com.rathnasoft.sample。 ContactsPhone}:java.lang.NullPointerException
01-07 12:43:49.381:E / AndroidRuntime(863):at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-07 12:43:49.381:E / AndroidRuntime(863):at android .app.ActivityThread.access $ 2300(ActivityThread.java:125)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033 )
01-07 12:43:49.381:E / AndroidRuntime(863):在android.os.Handler.dispatchMessage(Handler.java:99)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.os.Looper.loop(Looper.java:123)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread.main(ActivityThread.java:4627)
01-07 12:43:49.381:E / AndroidRuntime(863):at java.lang.reflect.Method.invokeNative(Native Method)
01-07 12:43:49.381:E / AndroidRuntime (863):at java.lang.reflect.Method.invoke(Method.java:521)
01-07 12:43:49.381:E / AndroidRuntime(863):at com.android.internal.os。 ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
01-07 12:43:49.381:E / AndroidRuntime(863):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626 )
01-07 12:43:49.381:E / AndroidRuntime(863):at dalvik.system.NativeStart.main(Native Method)
01-07 12:43:49.381:E / AndroidRuntime( 863):引起:java.lang.NullPointerException
01-07 12:43:49.381:E / AndroidRuntime(863):at com.rathnasoft.sample.ContactsPhone.displayContacts(ContactsPhone.java:67)
01-07 12:43:49.381:E / AndroidRuntime(863):at com.rathnasoft.sample.Contact sPhone.onCreate(ContactsPhone.java:22)
01-07 12:43:49.381:E / AndroidRuntime(863):at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01 -07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-07 12:43:49.381:E / AndroidRuntime(863): ... 11更多



编码部分是:

  public   class  ContactsPhone扩展活动{
private ListView lvContact;

protected void onCreate(Bundle savedInstanceState){
super。的onCreate(savedInstanceState);
setContentView(R.layout.contacts);
lvContact =(ListView)findViewById(R.id.listView1);
ArrayList< string> list = displayContacts();
ArrayAdapter< string> adapter = new ArrayAdapter< string>(getBaseContext(),android.R.layout.simple_list_item_1,list);
lvContact.setAdapter(adapter);


}

private ArrayList< string> displayContacts(){

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null
null null null );

ArrayList< string> contact = null ;
字符串 phoneNo = null ;
if (cur.getCount()> 0 ){
while (cur.moveToNext()){
String id = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur
.getString(cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

if (整数
.parseInt(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER) ))> 0 ){
光标pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ =? new String [] {id}, null );
while (pCur.moveToNext()){
phoneNo = pCur
.getString(pCur
.getColumnIndex(ContactsContract) .CommonDataKinds.Phone.NUMBER));

系统。 out .println( name + name + ph no + phoneNo);
Toast.makeText( this
名称: + name + ,电话号码: + phoneNo,
Toast.LENGTH_SHORT)。show();
}


pCur.close();
}
联系。添加(名称+ \ n + phoneNo);
}
}
返回联系人;

}
} < / string > < / string > < / string > < / string > < / string >

解决方案

2300(ActivityThread.java:125)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread


H.handleMessage(ActivityThread.java:2033)
01-07 12:43:49.381:E / AndroidRuntime( 863):在android.os.Handler.dispatchMessage(Handler.java:99)
01-07 12:43:49.38 1:E / AndroidRuntime(863):在android.os.Looper.loop(Looper.java:123)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread .main(ActivityThread.java:4627)
01-07 12:43:49.381:E / AndroidRuntime(863):at java.lang.reflect.Method.invokeNative(Native Method)
01-07 12:43:49.381:E / AndroidRuntime(863):at java.lang.reflect.Method.invoke(Method.java:521)
01-07 12:43:49.381:E / AndroidRuntime(863):在com.android.internal.os.ZygoteInit


MethodAndArgsCaller.run(ZygoteInit.java:868)
01-07 12:43:49.381:E / AndroidRuntime(863) :at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-07 12:43:49.381:E / AndroidRuntime(863):at dalvik.system.NativeStart.main(Native方法)
01-07 12:43:49.381:E / AndroidRuntime(863):引起:java.lang.NullPointerException
01-07 12:43:49.381:E / AndroidRuntime(863):在com.rathnasoft.sample.ContactsPhone.displayContacts(ContactsPhone.java:67)
01-07 12:43:49.381: E / AndroidRuntime(863):at com.rathnasoft.sample.ContactsPhone.onCreate(ContactsPhone.java:22)
01-07 12:43:49.381:E / AndroidRuntime(863):at android.app.Instrumentation .callActivityOnCreate(Instrumentation.java:1047)
01-07 12:43:49.381:E / AndroidRuntime(863):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01- 07 12:43:49.381:E / AndroidRuntime(863):... 11更多



编码部分是:

  public   class  ContactsPhone扩展活动{
private ListView lvContact;

protected void onCreate(Bundle savedInstanceState){
super。的onCreate(savedInstanceState);
setContentView(R.layout.contacts);
lvContact =(ListView)findViewById(R.id.listView1);
ArrayList< string> list = displayContacts();
ArrayAdapter< string> adapter = new ArrayAdapter< string>(getBaseContext(),android.R.layout.simple_list_item_1,list);
lvContact.setAdapter(adapter);


}

private ArrayList< string> displayContacts(){

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null
null null null );

ArrayList< string> contact = null ;
字符串 phoneNo = null ;
if (cur.getCount()> 0 ){
while (cur.moveToNext()){
String id = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur
.getString(cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

if (整数
.parseInt(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER) ))> 0 ){
光标pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ =? new String [] {id}, null );
while (pCur.moveToNext()){
phoneNo = pCur
.getString(pCur
.getColumnIndex(ContactsContract) .CommonDataKinds.Phone.NUMBER));

系统。 out .println( name + name + ph no + phoneNo);
Toast.makeText( this
名称: + name + ,电话号码: + phoneNo,
Toast.LENGTH_SHORT)。show();
}


pCur.close();
}
联系。添加(名称+ \ n + phoneNo);
}
}
返回联系人;

}
} < / string > < / string > < / string > < / string > < / string >


Hi,

I want to get the mobile contacts and view in the listView. But i am facing error.
It will be shown below,

01-07 12:43:49.381: E/AndroidRuntime(863): FATAL EXCEPTION: main
01-07 12:43:49.381: E/AndroidRuntime(863): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rathnasoft.sample/com.rathnasoft.sample.ContactsPhone}: java.lang.NullPointerException
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.os.Handler.dispatchMessage(Handler.java:99)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.os.Looper.loop(Looper.java:123)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at java.lang.reflect.Method.invokeNative(Native Method)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at java.lang.reflect.Method.invoke(Method.java:521)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at dalvik.system.NativeStart.main(Native Method)
01-07 12:43:49.381: E/AndroidRuntime(863): Caused by: java.lang.NullPointerException
01-07 12:43:49.381: E/AndroidRuntime(863): 	at com.rathnasoft.sample.ContactsPhone.displayContacts(ContactsPhone.java:67)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at com.rathnasoft.sample.ContactsPhone.onCreate(ContactsPhone.java:22)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-07 12:43:49.381: E/AndroidRuntime(863): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-07 12:43:49.381: E/AndroidRuntime(863): 	... 11 more


And the coding part is:

public class ContactsPhone extends Activity {
	private ListView lvContact;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.contacts);
		lvContact = (ListView) findViewById(R.id.listView1);
		ArrayList<string> list = displayContacts();
		ArrayAdapter<string> adapter = new ArrayAdapter<string>(getBaseContext(), android.R.layout.simple_list_item_1,list);
		lvContact.setAdapter(adapter);
		

	}

	private ArrayList<string> displayContacts() {

		ContentResolver cr = getContentResolver();
		Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
				null, null, null);
		
		ArrayList<string> contact = null;
		String phoneNo = null;
		if (cur.getCount() > 0) {
			while (cur.moveToNext()) {
				String id = cur.getString(cur
						.getColumnIndex(ContactsContract.Contacts._ID));
				String name = cur
						.getString(cur
								.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

				if (Integer
						.parseInt(cur.getString(cur
								.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
					Cursor pCur = cr.query(
							ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
							null,
							ContactsContract.CommonDataKinds.Phone.CONTACT_ID
									+ " = ?", new String[] { id }, null);
					while (pCur.moveToNext()) {
						phoneNo = pCur
								.getString(pCur
										.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

						System.out.println("name" + name + "ph no" + phoneNo);
						Toast.makeText(this,
								"Name: " + name + ", Phone No: " + phoneNo,
								Toast.LENGTH_SHORT).show();
					}
					

					pCur.close();
				}
				contact.add(name + "\n" + phoneNo);
			}
		}
		return contact;

	}
}</string></string></string></string></string>

解决方案

2300(ActivityThread.java:125) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.app.ActivityThread


H.handleMessage(ActivityThread.java:2033) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.os.Handler.dispatchMessage(Handler.java:99) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.os.Looper.loop(Looper.java:123) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.app.ActivityThread.main(ActivityThread.java:4627) 01-07 12:43:49.381: E/AndroidRuntime(863): at java.lang.reflect.Method.invokeNative(Native Method) 01-07 12:43:49.381: E/AndroidRuntime(863): at java.lang.reflect.Method.invoke(Method.java:521) 01-07 12:43:49.381: E/AndroidRuntime(863): at com.android.internal.os.ZygoteInit


MethodAndArgsCaller.run(ZygoteInit.java:868) 01-07 12:43:49.381: E/AndroidRuntime(863): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 01-07 12:43:49.381: E/AndroidRuntime(863): at dalvik.system.NativeStart.main(Native Method) 01-07 12:43:49.381: E/AndroidRuntime(863): Caused by: java.lang.NullPointerException 01-07 12:43:49.381: E/AndroidRuntime(863): at com.rathnasoft.sample.ContactsPhone.displayContacts(ContactsPhone.java:67) 01-07 12:43:49.381: E/AndroidRuntime(863): at com.rathnasoft.sample.ContactsPhone.onCreate(ContactsPhone.java:22) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-07 12:43:49.381: E/AndroidRuntime(863): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 01-07 12:43:49.381: E/AndroidRuntime(863): ... 11 more


And the coding part is:

public class ContactsPhone extends Activity {
	private ListView lvContact;

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.contacts);
		lvContact = (ListView) findViewById(R.id.listView1);
		ArrayList<string> list = displayContacts();
		ArrayAdapter<string> adapter = new ArrayAdapter<string>(getBaseContext(), android.R.layout.simple_list_item_1,list);
		lvContact.setAdapter(adapter);
		

	}

	private ArrayList<string> displayContacts() {

		ContentResolver cr = getContentResolver();
		Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
				null, null, null);
		
		ArrayList<string> contact = null;
		String phoneNo = null;
		if (cur.getCount() > 0) {
			while (cur.moveToNext()) {
				String id = cur.getString(cur
						.getColumnIndex(ContactsContract.Contacts._ID));
				String name = cur
						.getString(cur
								.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

				if (Integer
						.parseInt(cur.getString(cur
								.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
					Cursor pCur = cr.query(
							ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
							null,
							ContactsContract.CommonDataKinds.Phone.CONTACT_ID
									+ " = ?", new String[] { id }, null);
					while (pCur.moveToNext()) {
						phoneNo = pCur
								.getString(pCur
										.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

						System.out.println("name" + name + "ph no" + phoneNo);
						Toast.makeText(this,
								"Name: " + name + ", Phone No: " + phoneNo,
								Toast.LENGTH_SHORT).show();
					}
					

					pCur.close();
				}
				contact.add(name + "\n" + phoneNo);
			}
		}
		return contact;

	}
}</string></string></string></string></string>


这篇关于无法将数组列表加载到数组适配器中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆