在Android中从TextView切换到ListView

时间:2013-06-12 00:28:20

标签: android xml eclipse listview textview

所以,我一直在关注朋友发给我的这个Vogella ContentProvider教程,如果你看一下6.3节的结尾,你会看到他说:

  

如果您运行此应用程序,则会从人员应用程序的 ContentProvider 中读取数据,并显示在 TextView 中。通常,您会在 ListView 中显示此类数据。


由于我刚开始使用android(以及一般的编程),我只是将main.xml中的T​​extView标记更改为ListView,正如预期的那样,当我在模拟器中运行应用程序时,它会崩溃。

按需代码:

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

<TextView
    android:id="@+id/contactview"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout> 


Java文件:

package de.vogella.android.contentprovider;

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.widget.TextView;

public class ContactsActivity extends Activity {

/** Called when the activity is first created. */

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_contacts);
    TextView contactView = (TextView) findViewById(R.id.contactview);

    Cursor cursor = getContacts();

    while (cursor.moveToNext()) {

      String displayName = cursor.getString(cursor
          .getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
      contactView.append("Name: ");
      contactView.append(displayName);
      contactView.append("\n");
    }
  }

  private Cursor getContacts() {
    // Run query
    Uri uri = ContactsContract.Contacts.CONTENT_URI;
    String[] projection = new String[] { ContactsContract.Contacts._ID,
        ContactsContract.Contacts.DISPLAY_NAME };
    String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '"
        + ("1") + "'";
    String[] selectionArgs = null;
    String sortOrder = ContactsContract.Contacts.DISPLAY_NAME
        + " COLLATE LOCALIZED ASC";


    return managedQuery(uri, projection, selection, selectionArgs,
        sortOrder);
  }

 } 

我确定我做错了什么,有人能指出我正确的方向还是告诉我如何将它从TextView切换到ListView?

此外,这是无关的,但我下载了adt包,有时它没有正确生成R.java文件,它没有对R.java文件进行任何更改,并将其保留为默认值当你制作任何新的android项目时会产生什么,为什么会有什么想法呢? 注意:您无需回答此问题即可接受答案。

0 个答案:

没有答案
相关问题