在活动之间传递ContactsContract.Data.DISPLAY_NAME

时间:2014-02-05 02:45:16

标签: android variables android-intent android-activity

我在应用程序中的两个活动之间传递数据时遇到问题。我的ActivityOne填充了手机中的联系人列表。然后,用户可以选择将他们带到ActivityTwo的联系人。以下是我在选择联系人之后编写Intent以从ActivityOne写入ActivityTwo的方法:

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    Intent i = new Intent(v.getContext(), ActivityTwo.class);
    i.putExtra("name", ContactsContract.Data.DISPLAY_NAME);

    startActivity(i);
}

在ActivityTwo的onCreate()方法中,我已经包含此代码以恢复传递的数据:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    name = extras.getString("name");
}

ActivityOne使用正确的名称正确填充联系人列表,但是当我尝试使用传递给ActivityTwo的名称时,它默认为display_name而不是联系人的实际名称。

我做错了什么或者我忽略了什么?

1 个答案:

答案 0 :(得分:0)

你可以试试这个代码并反馈给我吗?

@Override
public void onListItemClick(ListView l, View v, int position, long id) {        
    String name =  ((TextView) v.findViewById(android.R.id.text1)).getText().toString();
    Intent i = new Intent(v.getContext(), ActivityTwo.class);
    i.putExtra("name", name);
    startActivity(i);
}