我的 android 应用程序中显示了联系人列表。单击名称后,如何将数字保存到字符串中?
I have the list of contacts appear in my android App. How is it possible that upon clicking on the name, it saves the number into a String?
我有以下代码可以在我的屏幕上显示联系人列表:
public class MainActivity extends ListActivity {
@Override
public int getSelectedItemPosition() {
return super.getSelectedItemPosition();
}
@Override
public long getSelectedItemId() {
return super.getSelectedItemId();
}
ListView lv;
Cursor cursor1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null , null , null , null);
startManagingCursor(cursor1);
String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone._ID};
int[] to = {android.R.id.text1, android.R.id.text2};
SimpleCursorAdapter listadapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor1, from, to );
setListAdapter(listadapter);
lv = getListView();
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我想让用户能够通过单击姓名将号码保存在字符串中。我应该如何开始?
您可以在列表视图上实现 setOnItemClickListener
,然后使用光标和 moveToPosition 方法将位置作为参数传递来获取位置,然后再次使用光标从名称中获取数字,如下所示:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
cursor1.moveToPosition(position);
Toast.makeText(getApplicationContext(), cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)), Toast.LENGTH_SHORT).show();
}
});
注意我没有测试代码所以我不知道我是对的。
我有以下代码可以在我的屏幕上显示联系人列表:
public class MainActivity extends ListActivity {
@Override
public int getSelectedItemPosition() {
return super.getSelectedItemPosition();
}
@Override
public long getSelectedItemId() {
return super.getSelectedItemId();
}
ListView lv;
Cursor cursor1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cursor1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null , null , null , null);
startManagingCursor(cursor1);
String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone._ID};
int[] to = {android.R.id.text1, android.R.id.text2};
SimpleCursorAdapter listadapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor1, from, to );
setListAdapter(listadapter);
lv = getListView();
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我想让用户能够通过单击姓名将号码保存在字符串中。我应该如何开始?
您可以在列表视图上实现 setOnItemClickListener
,然后使用光标和 moveToPosition 方法将位置作为参数传递来获取位置,然后再次使用光标从名称中获取数字,如下所示:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
cursor1.moveToPosition(position);
Toast.makeText(getApplicationContext(), cursor1.getString(cursor1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)), Toast.LENGTH_SHORT).show();
}
});
注意我没有测试代码所以我不知道我是对的。