繁体   English   中英

如何在两个不同的活动之间传递多个字符串?

[英]How to pass multiple strings between two different activities?

我试图将多个字符串从使用json解析的MainActivity类传递给SingleContactActivity类。 现在,我正在测试仅传递名称和电子邮件字符串,在logcat中,它表示已成功传递值,但是我无法将两个字符串都输出到SingleContactActivity中。 但是,如果我尝试仅传递名称字符串,它将输出到SingleContactActivity。 为了代码清晰起见,我删除了导入。

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();
}

公共类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); 
         }
     }
}

在您的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM