也许有人可以帮助我。我想将两个字符串传递给另一个活动。这是我生成字符串的代码:
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
答案 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
}
}
}