[英]How to pass multiple strings between two different activities?
I am trying to pass multiple strings from MainActivity class parsed with json to SingleContactActivity class. 我试图将多个字符串从使用json解析的MainActivity类传递给SingleContactActivity类。 Right now I am testing passing just the name and email strings, in logcat it says that the values were successfully passed but I cannot get both strings to output in SingleContactActivity. 现在,我正在测试仅传递名称和电子邮件字符串,在logcat中,它表示已成功传递值,但是我无法将两个字符串都输出到SingleContactActivity中。 However if I try to pass the name string only it will output to SingleContactActivity. 但是,如果我尝试仅传递名称字符串,它将输出到SingleContactActivity。 I removed imports for code clarity. 为了代码清晰起见,我删除了导入。
public class MainActivity extends ListActivity {
private ProgressDialog pDialog;
// URL to get contacts JSON
public static String url = "http://api.androidhive.info/contacts/";
// contacts JSONArray
JSONArray contacts = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contactList = new ArrayList<HashMap<String, String>>();
ListView lv = getListView();
// Listview on item click listener
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.name))
.getText().toString();
String email = ((TextView) view.findViewById(R.id.email))
.getText().toString();
// Launching new Activity on selecting single List Item
Intent in = new Intent(MainActivity.this, SingleContactActivity.class);
// sending data to new activity
in.putExtra("TAG_NAME", name);
in.putExtra("TAG_EMAIL", email);
startActivity(in);
}
});
// Calling async task to get json
new GetContacts().execute();
}
public class SingleContactActivity extends Activity { 公共类SingleContactActivity扩展了Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.single_list_item_view);
Bundle extras = getIntent().getExtras();
if( extras != null ) {
String name = extras.getString("TAG_NAME");
Log.d("", "Value passed = " + name);
TextView txtContact = (TextView) findViewById(R.id.name);
txtContact.setText(name);
String email = extras.getString("TAG_EMAIL");
Log.d("", "Value passed = " + email);
TextView txtContact1 = (TextView) findViewById(R.id.email);
txtContact1.setText(email);
}
}
}
Try this code in your onCreate()
method : 在您的onCreate()
方法中尝试以下代码:
Intent intent = getIntent();
if( intent != null ) {
String name = intent.getStringExtra("TAG_NAME");
Log.d("", "Value passed = " + name);
TextView txtContact = (TextView) findViewById(R.id.name);
txtContact.setText(name);
String email = intent.getStringExtra("TAG_EMAIL");
Log.d("", "Value passed = " + email);
TextView txtContact1 = (TextView) findViewById(R.id.email);
txtContact1.setText(email);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.