使用以下类我想从列表中选择具有联系人姓名和号码的联系人。
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()中,应该检索所选的联系人号码,这是我无法获得的。请帮忙。
答案 0 :(得分:1)
在OnItemClickListener
中尝试此操作TextView txtNumber = (TextView) arg1.findViewById(android.R.id.text2)
String str = txtNumber.getText()
答案 1 :(得分:1)
This will give you back the Number of selected contact
@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);
}
}