【问题标题】:Error on Shuffling xml layouts using ArrayList使用 ArrayList 洗牌 xml 布局时出错
【发布时间】:2015-01-09 14:59:12
【问题描述】:

我是ArrayList 的新手。没看懂。

如果我使用int[] 作为ArrayList 项目,则会出现错误提示:

对于类型ArrayList<int[]>,方法put(int) 未定义。

如果我使用 int 错误提示:

标记“int”的语法错误,此标记之后的尺寸

我试过用add()还是一样...

【问题讨论】:

  • 请提供您的代码以及到目前为止所做的工作。
  • 首先使用Integer而不是int来创建ArrayList,第二点是R.layout。<...>总是返回int而不是int[]数组
  • 感谢@The Ice Mage。它是这样的。 ArrayListmArrayList = new ArrayList(); mArrayList.add(R.layout.layout1); mArrayList.add(R.layout.layout2); mArrayList.add(R.layout.layout3); mArrayList.add(R.layout.layout4); mArrayList.add(R.layout.layout5); Collections.shuffle(mArrayList);
  • @ρяσѕρєя 谢谢我明白了。
  • 最后一个问题。我可以用(mArrayList,随机)做什么?错误说随机无法解析为变量 public void onClick(View v) { if(v.getId() == R.id.button){ handler.postDelayed(new Runnable() { @Override public void run() { setContentView(Collections.shuffle(mArrayList, random)); bt = (Button) findViewById(R.id.button); bt.setOnClickListener(Shuffle.this); } }, 0); } }

标签: java android arrays xml


【解决方案1】:

您不能使用基本类型int 等作为ArrayList 的“类型”。您必须改用包装类Integer。另外,我需要更正,但我认为您不能出于类似原因拥有数组类型的ArrayList。也许ArrayList&lt;ArrayList&lt;Integer&gt;&gt; 会起作用,虽然有点难看?

编辑:虽然我的 Android 体验有些简陋和生疏,但 ρяσѕρєя K 关于R.layout.foo 总是返回 int 的评论肯定是正确的。

【讨论】:

  • 任何 x[] 都是正确的对象,所以你可以有 List&lt;int[]&gt; 等。
【解决方案2】:

使用这样的东西:

  ArrayList<Integer []>  mArrayList = new ArrayList<Integer[]>();           
  Integer [] layouts = {R.layout.layout1,R.layout.layout12,...};            
  mArrayList.add(layouts);

  ArrayList<Integer>  mArrayList = new ArrayList<Integer>();
  mArrayList.add(R.layout.layout1);
  mArrayList.add(R.layout.layout2);         
  ...

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 2012-09-01
    • 2017-08-11
    相关资源
    最近更新 更多