0

ListView を機能させようとしていますが、アプリを閉じる必要があるというメッセージが画面に表示されます。エラーを探していますが、見つかりません。おそらくそれはレイアウトの中にありますか?そこに ListView が必要かどうか、またはこれが cdynamic で作成されているかどうかわかりませんか? 私は何を間違っていますか?onClick メソッドも使用しますが、この場合はマイナーな問題だと思います!? 助けてください!ありがとう!

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>
4

2 に答える 2

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>

またはちょうどあなたが必要とするスーツですが、これは動作するコードです

于 2013-02-22T12:53:17.803 に答える
0

私が理解しているように、各ビューに別の ListView が含まれるビューを作成するアダプターを使用しようとしていますか?

消去

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

通常、ListView を別の ListView に配置することはできません。

于 2013-02-22T12:51:37.923 に答える