当前位置: 首页 > 面试题库 >

Java中额外的数组列表意图

阎智
2023-03-14
问题内容

我想我要跳过ArrayList通过Intent。但是我找不到多余的东西吗?任何get方法都会收到类似“不适用于字符串”之类的错误。

项目详细信息:

public class ItemDetails {

public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getItemDescription() {
    return itemDescription;
}
public void setItemDescription(String itemDescription) {
    this.itemDescription = itemDescription;
}
public String getPrice() {
    return price;
}
public void setPrice(String price) {
    this.price = price;
}
public int getImageNumber() {
    return imageNumber;
}
public void setImageNumber(int imageNumber) {
    this.imageNumber = imageNumber;
}

public int getVideoNumber() {
    return videoNumber;
}
public void setVideoNumber(int videoNumber) {
    this.videoNumber = videoNumber;
}

public void setChild(ArrayList<ItemDetails> item_child)
{
    this.item_child = item_child;
}
public ArrayList<ItemDetails> getChild()
{
    return this.item_child;
}
public void setParent(ArrayList<ItemDetails> item_parent)
{
    this.item_parent = item_parent;
}
public ArrayList<ItemDetails> getParent()
{
    return this.item_parent;
}



private String name ;
private String itemDescription;
private String price;
private int imageNumber;
private int videoNumber;
private ArrayList<ItemDetails> item_child;
    private ArrayList<ItemDetails> item_parent; 
}

我的课:

static class ViewHolder {
    TextView txt_itemName;
    TextView txt_itemDescription;
    TextView txt_itemPrice;
    ImageView itemImage;
    ArrayList<ItemDetails> item_parent;
    ArrayList<ItemDetails> item_child;
}

我的putExtra:

intObj.putExtra("exerciselist",obj_itemDetails.getChild());

GetChild函数:

public ArrayList<ItemDetails> getChild()
{
   return this.item_child;
}

但是我找不到我应该怎么写来获取arrayList?

ArrayList<ItemDetails> child1 = getIntent().?????????

问题答案:

但是我找不到应该怎么写来获取arrayList

简短答案:您不能。您只能通过ArrayList<String>,然后使用

getIntent().getStringArrayListExtra("key");

但是 。如果要通过Intent传递自定义对象,则必须实现以下对象:

  • Parcelable interface 要么 Serializable interface

您可以选择其中之一。两者的工作原理相同,但实现方式不同。

如果选择Parcelable接口,则您的ItemDetails类必须实现Parcelable。然后你可以把它作为

intent.putParcelableArrayListExtra("key", value);

并将其检索为:

getIntent().getParcelableArrayListExtra("key");

我不会为您编写Parcelable实现,因为它需要更多代码。这是一个很好的例子。

可序列化的接口:

如果您选择Serializable接口,建议您创建一个名为ItemDetailsWrapper的类,该类将包装您的
ArrayList(s)<ItemDetails>

ItemDetailsWrapper和ItemDetails类都必须实现Serializable接口。现在,您可以像这样通过Intent传递它:

getIntent().putExtra("key", <serializableClass>); // storing 
getIntent().getSerializableExtra("key"); // retrieving

实现示例:

public class ItemDetailsWrapper implements Serializable {

    private static final long serialVersionUID = 1L;
    private ArrayList<ItemDetails> itemDetails;

    public ItemDetailsWrapper(ArrayList<ItemDetails> items) {
        this.itemDetails = items;
    }

    public ArrayList<ItemDetails> getItemDetails() {
        return itemDetails;
    }
}

public class ItemDetails implements Serializable {

    private static final long serialVersionUID = 1L;

    // getters, setters and properties
}

以及如何通过活动:

ItemDetailsWrapper wrapper = new ItemDetailsWrapper(list);
Intent i = new Intent(<context>, <targetActivity>);
i.putExtra("obj", wrapper); // i.putExtra("obj", new ItemDetailsWrapper(list));
// retrieving 
ItemDetailsWrapper wrap = 
                    (ItemDetailsWrapper) getIntent().getSerializableExtra("obj");
ArrayList<ItemDetails> list = wrap.getItemDetails();


 类似资料:
  • 问题内容: 用Java制作数组列表的语法是什么? 我尝试了以下方法: 还有很多其他事情 我需要能够对int数组进行重新排序,但是int数组的元素不需要更改。如果这不可能,为什么呢? 谢谢。 问题答案: 首先,您不能做的是接口。 要列出int数组,请执行以下操作: PS 根据评论,List的包和ArrayList的包

  • 我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部

  • 问题内容: 假设我有一个NumPy数组a: 我想添加一列零以获取一个数组b: 我如何在NumPy中轻松地做到这一点? 问题答案: 我认为,更简单,更快速的启动方法是执行以下操作: 和时间:

  • 问题内容: 我想撤消一个列表,但是我设法做到了,但是在工作的中间我发现了一些奇怪的事情。下面的程序按预期工作,但list_reversed [i] = list [len(list)-1-i] 和 print(list [i]) (顺理成章地注释了 最后一行 )这 行 引起了 list 的更改。我没看到什么?我的Python版本是3.3.3。先感谢您。 问题答案: 以下: 使两个变量引用相同的列表

  • 问题内容: 我正在尝试使用BeautifulSoup从html文档中获取一些文本。在我看来,这很奇怪,它产生了一个奇怪而有趣的结果:在某一点之后,汤在文本中充满了多余的空格(空格将每个字母与下一个字母分隔开)。我试图在网络上搜索以找到原因,但是我只遇到了有关相反错误的一些消息(根本没有空格)。 您对它为什么会发生以及如何解决此问题有任何建议或提示吗? 这是我创建的非常基本的代码: 这是从结果中提取

  • 问题内容: 我有一个phone_models,phone_problems和一个phone_model_phone_problem数据透视表。数据透视表有一个额外的“价格”列。 手机型号: 电话问题: 我想做的是获取具有特定问题的特定手机的价格。 这就是我现在的方式,但是我觉得Laravel具有内置的Eloquent功能,我找不到用更简单的方式做到这一点: 这一切都是从他们的中选择特定的模型和问题