我的 android 应用程序中出现了联系人列表。单击名称后,如何将数字保存到字符串中?

Posted

技术标签:

【中文标题】我的 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? 【发布时间】:2017-06-15 01:52:32 【问题描述】:

我有以下代码可以让联系人列表出现在我的屏幕上:

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;
    

我想启用用户,他可以通过单击名称将数字保存在字符串中。我应该如何开始?

【问题讨论】:

【参考方案1】:

您可以在列表视图上实现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(); );

注意我没有测试代码所以我不知道我是否正确。

【讨论】:

以上是关于我的 android 应用程序中出现了联系人列表。单击名称后,如何将数字保存到字符串中?的主要内容,如果未能解决你的问题,请参考以下文章

联系人没有加载到我的列表视图android中

Android QuickBlox - 用户必须有一个联系人列表

Android 联系人列表获取地址

列表视图上的 Android 联系人

列表视图上的 Android 联系人

如何在android上的listview中快速加载联系人