将字符串传递给Android中的另一个Activity

时间:2015-11-05 07:46:11

标签: android string

也许有人可以帮助我。我想将两个字符串传递给另一个活动。这是我生成字符串的代码:

private void contactPicked(Intent data) {
    Cursor cursor = null;
    try {
        String phoneNo = null;
        String name = null;

        // getData() method will have the Content Uri of the selected contact
        Uri uri = data.getData();

        //Query the content uri
        cursor = getContentResolver().query(uri, null, null, null, null);
        cursor.moveToFirst();
        // column index of the phone number
        int phoneIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
        // column index of the contact name
        int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
        phoneNo = cursor.getString(phoneIndex);
        name = cursor.getString(nameIndex);
        // Set the value to the textviews
        textView1.setText(name);
        textView2.setText(phoneNo);
    } catch (Exception e) {
        e.printStackTrace();
    }

我想将phoneNo和Name传递给我的MainActivity

我尝试在没有任何结果的情况下在我的MainAcitivity中执行SharedPreference并加载DefaultSharedPreference

4 个答案:

答案 0 :(得分:0)

在您的代码中添加此内容

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

从第二个活动

获取
<add key="elmah.mvc.disableHandler" value="false" />
<add key="elmah.mvc.disableHandleErrorFilter" value="false" />
<add key="elmah.mvc.requiresAuthentication" value="false" />
<add key="elmah.mvc.IgnoreDefaultRoute" value="false" />
<add key="elmah.mvc.allowedRoles" value="*" />
<add key="elmah.mvc.allowedUsers" value="*" />
<add key="elmah.mvc.route" value="elmah" />
<add key="elmah.mvc.UserAuthCaseSensitive" value="true" />

答案 1 :(得分:0)

在当前活动中添加:

Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("PHONE", phoneNo);
intent.putExtra("NAME", Name);
startActivity(intent);

在主要活动中添加:

Intent intent = getIntent();
String phonNo = intent.getStringExtra("PHONE");
String Name = intent.getStringExtra("Name");

答案 2 :(得分:0)

您可以使用Intent

//通过Intent将数据从一个活动传递给另一个活动

Intent intent = new Intent(getApplicationContext(),MainActivity.class);
intent.putExtra("phone", phoneNo);
intent.putExtra("name", name);
startActivity(intent);

//接收其他活动中的数据

Intent intent = getIntent();
String phonNo = intent.getStringExtra("phone");
String name = intent.getStringExtra("name");

答案 3 :(得分:0)

根据您的评论猜测,您希望在关闭ContactActivity后传递字符串,而无需再次打开MainActivity(不将其添加到堆栈中)。

您可以启动一个活动并等待结果,因此在您的主要活动更改

   startActivity(intent);

   startActivityForResult(i, REQUEST_CODE);  

然后,在您的ContactActivity中,您可以将结果设置为:

   intent = new Intent();
   intent.putExtra("PHONE", phoneNo);
   intent.putExtra("NAME", Name);
   setResult(RESULT_OK, intent);

在onActivityResult中,您可以实现onActivityResult来检索数据

   @Override
   protected void onActivityResult(int requestCode, int resultCode, Intent data) {    
       if(requestCode == REQUEST_CODE){

            if(resultcode == RESULT_OK){
                 String phoneNo = data.getStringExtra("PHONE");
                 String name = data.getStringExtra("NAME");
                 //do whatever you want
            }else{
                 //do something else
            }
       }
   }