【问题标题】:How to Pass NameValuePair Object of ArrayList one Activity to another Activity?如何将 ArrayList 的 NameValuePair 对象传递给另一个 Activity?
【发布时间】:2015-02-03 06:13:00
【问题描述】:

我正在尝试将 NameValuePair 的 arrylist 一个活动传递给另一个活动,我为此搜索了很多,我发现了类似的问题但是我无法得到答案,我尝试了但我得到了异常 ,请谁告诉我如何通过

    ArrayList<NameValuePair> namevlaList= new ArrayList<NameValuePair>();
    namevlaList.add(new BasicNameValuePair("formal_name",mLegalName));
    namevlaList.add(new BasicNameValuePair("device_phone_no",mPhno));
    namevlaList.add(new BasicNameValuePair("email",mEmail));
    namevlaList.add(new BasicNameValuePair("contact_name",mContactName));
    namevlaList.add(new            
    BasicNameValuePair("contact_number",mContactNumber));
    namevlaList.add(new BasicNameValuePair("password",mPwd));  
    Intent intent = new 
    Intent(this,Second.class);
    intent.putExtra("extra", namevlaList);
    startActivity(intent);

【问题讨论】:

  • 捆绑 b = 新捆绑(); b.putSerializable("namevlaList", namevlaList);
  • 如何在第二次活动中获得该值?
  • namevlaList= (ArrayList) getArguments().get("namevlaList");
  • 希望对你有帮助,我也在下面回答了
  • namevlaList= (ArrayList) getIntent().getExtra().get("namevlaList");

标签: android


【解决方案1】:

你可以这样做,希望对你有帮助

Intent intent = new Intent(this,Second.class);
intent.putExtra("namevlaList", namevlaList);
startActivity(intent);

在下一个活动中使用这个

// initialize array list in onCreate
namevlaList= (ArrayList) getIntent().getExtra().get("namevlaList");

也可以看到link

这是因为 BasicNameValuePair 不可序列化,请参阅this 希望对您有所帮助

【讨论】:

  • 如果你在活动中试试这个 getInent().getExtra()
  • 是的,我试过了,但是在第二个活动 java.lang.RuntimeException 中获取值时出现异常:Parcel:无法编组值formal_name=fhjj
  • 答案已编辑希望它有效,请问您是否还有其他问题
  • 我做了但是得到了同样的异常
  • 这是因为 BasicNameValuePair 不可序列化看到这个希望它帮助stackoverflow.com/questions/18050030/…
【解决方案2】:

你可以通过Bundle

Intent intent = new Intent(this,Second.class);
Bundle extra = new Bundle();
extra.putSerializable("extra",  namevlaList.toArray());// cast to array and put
intent .putExtras(extra);
startActivity(intent);

第二次活动

Intent i = getIntent();
Bundle extras = i.getExtras();
List<NameValuePair> Namevaluepairvariable = new ArrayList<NameValuePair>();
Namevaluepairvariable =  (List<NameValuePair>) extras.getSerializable("extra");

在您的第二个活动中使用implements Serializable

【讨论】:

  • 如何在另一个活动中获得该值?
  • 在第二个活动 java.lang.RuntimeException 中获取值时出现异常:包裹:无法编组值formal_name=fhjj
  • 在您的第二个活动中使用 implements Serializable
  • 我已经为我的第二个活动实现了 Serializable 但我得到了同样的异常
  • 是不是一样的异常??你能显示你的第二个活动代码吗
猜你喜欢
  • 1970-01-01
  • 2016-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-01-25
相关资源
最近更新 更多