2013-02-22 4 views
0

Я пытаюсь заставить ListView работать, но я получаю сообщение на экране, которое нужно закрыть приложением! Я ищу ошибку, но я не могу ее найти! Возможно, это внутри макета? Я не уверен, должен ли я иметь ListView внутри или если он создан cdynamic? Что я делаю не так? Я также собираюсь использовать метод onClick, но, я думаю, это проблема шахтера в этом случае !? Предоставьте некоторую помощь! Благодаря!Приложение ListView force закрывается

public class Activity_3 extends ListActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

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

    // Get a cursor with all people 
    Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, 
      projection, null, null, null); 

    startManagingCursor(cursor); 

    ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_3, cursor, new String[] {ContactsContract.Contacts.DISPLAY_NAME}, new int[] {R.id.contactItem }); 

    setListAdapter(adapter); 
} 
} 

Компоновка

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/contactList" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

<TextView android:id="@+id/contactItem" > 
</TextView> 

</LinearLayout> 
+2

Пожалуйста, попробуйте опубликовать журнал ошибок DDMS. Откройте окно logcat и добавьте фильтр для своего приложения. Затем вы можете увидеть ошибку. Также ваш макет xml кажется неполным. Какую IDE вы используете? – Timmetje

+0

где ur adapterclass, который расширяет SimpleCursorAdapter или baseadapter – saran

+0

, если вы расширяете активность List, тогда вам не нужно класть listview в макет. – Anukool

ответ

1

вы добавили это разрешение

<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> 

в Manifest.xml

нормально теперь это должно быть ваша деятельность

public class mainact extends Activity { 

    ListView l; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.abc); 
     l=(ListView)findViewById(R.id.contactList); 

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

     // Get a cursor with all people 

     Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection,null,null, null); 

     while (phones.moveToNext()) 
     { 
      String Name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
      String Number=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

     } 
     startManagingCursor(phones); 

     ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.abc, phones, new String[] {ContactsContract.Contacts.DISPLAY_NAME}, new int[] {R.id.contactItem }); 

     l.setAdapter(adapter); 
    } 
    } 

и XML должен быть как

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/contactList" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

<TextView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/contactItem" > 
</TextView> 

</LinearLayout> 

или просто подойдет вам, но это рабочий код

+0

Да! Это уже сделано! –

+0

Вот почему вам нужно опубликовать журнал ошибок, мы не знаем, почему он сбой. Это может быть что угодно. – Timmetje

+0

Спасибо за помощь! –

0

Как я понимаю, вы пытаетесь использовать адаптер, который создает виды, где каждый вид содержит другой ListView?

Удалить

<ListView 
    android:id="@+id/contactList" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

Обычно вы не можете поместить ListView в другой ListView.

+0

Нет, я так не думаю :) Я просто хочу получить список всех имен контактов и уметь выбирать имена и номера –

Смежные вопросы