使用listAdapter使用simple_list_item_2在listView中显示contactname和数字,



使用以下类我要从列表中选择具有联系人名称和号码的联系人。

public class MakeCallView extends Activity implements OnItemClickListener {
    Button callButtn;
    EditText number2call;
    private ListView lv1 = null;
    Cursor cursor = null;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.makeacall);
        cursor = getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
                null, null);
        callButtn = (Button) findViewById(R.id.CallBtn);
        number2call = (EditText) findViewById(R.id.number2Call);
        lv1 = (ListView) findViewById(R.id.listContact);
        ListAdapter adapter1 = new SimpleCursorAdapter(this,

            android.R.layout.simple_list_item_2, cursor, new String[] {
                        ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                        ContactsContract.CommonDataKinds.Phone.NUMBER },
                new int[] { android.R.id.text1, android.R.id.text2 });
        lv1.setAdapter(adapter1);
        lv1.setOnItemClickListener(this);
        callButtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {

                // TODO Auto-generated method stub
            }
        });
    }

    @Override
    public void onItemClick(AdapterView<?> adapter, View arg1, int pos,
            long arg3) {
        try {
            Cursor c = (Cursor) adapter.getItemAtPosition(pos);
            View v = adapter.getFocusedChild();
            // TwoLineListItem row = (TwoLineListItem)
            // adapter.getAdapter().getView(pos, arg1,
            // (ViewGroup)adapter.getParent());
            // String a = (String)adapter.getItemAtPosition(pos);
            // number2call.setText( c.g);
            Log.v("GPS", "arg3    : " + c.getColumnCount());
            Log.v("GPS", "arg3    : " + c.getColumnNames());
            Log.v("GPS", "arg3    : " + c.toString());
            Log.v("GPS", "arg3    : " + c.getShort(1));
            Log.v("GPS", "arg3    : " + c.getColumnIndex("text2"));
        } catch (Exception e) {
            // TODO Auto-generated catch block
            Log.v("GPS", e.getMessage(), e);
        }
        // number2call.setText(((TextView)arg1).getText().toString());
        // Handle list2 click even
    }
}

从上面的代码中,在 oniTemClick()中,应检索所选的联系码,我无法获得。请帮助。

在您的onItemClickListener中尝试一下

TextView txtNumber = (TextView) arg1.findViewById(android.R.id.text2)
String str = txtNumber.getText()
      这将为您提供选定的联系人数量
 @Override
        public void onItemClick(AdapterView<?> adapter, View arg1, int pos,
                long arg3) {
            try {
                String x = ((TwoLineListItem) arg1).getText2().getText()
                            .toString();
                    number2call.setText(x);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                Log.v("GPS", e.getMessage(), e);
            }

    }

最新更新