如何动态添加文本视图到android中的列表视图?

时间:2011-11-02 12:21:57

标签: android listview android-layout textview contacts

enter image description here

我需要在列表视图中添加两个文本视图,如图所示...我需要的是点击联系人按钮,名称和数字类型自动进入我自己的列表视图..我不是能够将文本视图添加到列表视图,因为我只能看到手机的联系人列表...请帮助我...请提前谢谢......这里有代码。

import android.app.ListActivity;

import android.os.Bundle;
import android.provider.ContactsContract;
import android.content.Intent;
import android.database.Cursor;

public class TestActivity extends ListActivity
{



    private static final int PICK_CONTACT = 0;

    /** Called when the activity is first created. */
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
      super.onCreate(savedInstanceState);       
    //content uri provide directory of people
      Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 

      startActivityForResult(intentContact, PICK_CONTACT);
    }//onCreate

    public void onActivityResult(int requestCode, int resultCode, Intent intent) 
    {

      if (requestCode ==PICK_CONTACT)
      { 
          getContactInfo(intent);               
      }



    }//onActivityResult

    protected void getContactInfo(Intent intent)
    {
String name;
       Cursor cursor =  managedQuery(intent.getData(), null, null, null, null);      
       while (cursor.moveToNext()) 
       {           
           //contains row id
           String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

             name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 
         //whether contact list atleast have a single contact or not
           String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

           if ( hasPhone.equalsIgnoreCase("1"))
               hasPhone = "true";
           else
               hasPhone = "false" ;

           if (Boolean.parseBoolean(hasPhone)) 
           {
            Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null);
            while (phones.moveToNext()) 
            {
              String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            }//end
            phones.close();
           }//end

        cursor.close();
       }//end while 


    }//end method
}//end class...........

这是xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
<ListView
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
<TextView
    android:id="@+id/android:empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
</LinearLayout>........


<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/toptext"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
        />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 
            android:id="@+id/bottomtext"
            android:singleLine="true"
            android:ellipsize="marquee"
        />
    </LinearLayout>
</LinearLayout> ...

1 个答案:

答案 0 :(得分:0)

为此,您必须制作自定义列表,只需查看本教程 Android Series: Custom ListView items and adaptersMonoDroid - Custom ListAdapter for your ListView