将Toast更改为GridView

时间:2012-08-03 11:13:53

标签: android layout gridview toast

我正在尝试将一些联系人显示到GridView中,但我正在使用的示例目前正在使用Toast。由于我是Android开发的新手,所以我只是在玩这些工具,现在我需要一些帮助:)

private void displayContacts() 
{
    ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, 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()) 
                    {
                        String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        Toast.makeText(NativeContentProvider.this, "Name: " + name + " | Phone No: " + phoneNo, Toast.LENGTH_LONG).show();
                    } 
                    pCur.close();
            }
        }
    }
}

提前致谢:)

2 个答案:

答案 0 :(得分:1)

试试这个 -

public class Test extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        GridView gv = (GridView)findViewById(R.id.gridview);

        Cursor c = managedQuery(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);

        String[] cols = new String[]{ContactsContract.Contacts.DISPLAY_NAME};
        int[]   views = new int[]   {android.R.id.text1};

        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
                android.R.layout.simple_list_item_1,
                c, cols, views);
        gv.setAdapter(adapter);
    }
}

<强> main.xml中

<?xml version="1.0" encoding="utf-8"?>
<!-- This file is at /res/layout/gridview.xml -->
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10px"
    android:verticalSpacing="10px"
    android:horizontalSpacing="10px"
    android:numColumns="auto_fit"
    android:columnWidth="100px"
    android:stretchMode="columnWidth"
    android:gravity="center"
    />

您可以使用自己的游标值代替上面的游标。并且,确保您的xml部分中应该有GridView。不要忘记在清单文件中添加重要权限。

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

希望这会对你有所帮助。

答案 1 :(得分:0)

在你的XML中添加gridView,如::

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/grid_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:numColumns="auto_fit"
    android:columnWidth="90dp"
    android:horizontalSpacing="10dp"
    android:verticalSpacing="10dp"
    android:gravity="center"
    android:stretchMode="columnWidth" >  

</GridView>     

然后在onCreate()方法中,定义:

       gridView = (GridView) findViewById(R.id.gridView1);

现在在while (pCur.moveToNext())    在arrayList Store中你需要的数据; 然后

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                    android.R.layout.simple_list_item_1, numbers);

        gridView.setAdapter(adapter);