传递ArrayList <integer>到Intent </integer>时的空数据

时间:2014-07-10 04:01:39

标签: android android-intent arraylist

我确定我错过了一些愚蠢的事情,这可能不是很难......

我将一个整数的arrayl从一个类传递到另一个类。日志显示传递类中的数据是正确的,但它在接收类中总是显示为null。 所有其他意图数据都已正确传递。

ArrayList unsavedEditedSets是私有类变量。

请帮忙。

传递课程段:

holder.returnButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v)
        {
            unsavedEditedSets.add(setPositionChoice);
            Intent i = new Intent(SetEditor.this, DisplayFullWorkout.class);
            i.putIntegerArrayListExtra("use", unsavedEditedSets); 

            Log.d("INIT - OK",""+unsavedEditedSets); // This shows data is in the arraylist

            i.putExtra("subsets", subsetsList);
            i.putExtras(extras);
            startActivity(i);      
        } 
    });

捕捉班级:

private ArrayList<Integer> unsavedEditedSets;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display_full_workout);

    Intent incomingI = getIntent();
    subsetsList = (ArrayList<HashMap<String, String>>)incomingI.getSerializableExtra("subsets");
    unsavedEditedSets = (ArrayList<Integer>) incomingI.getIntegerArrayListExtra("use");

    extras = incomingI.getExtras(); 

  Log.d("Incoming - BAD",""+unsavedEditedSets); // This shows null arraylist        
}

在发送前尝试使用新的arraylist并仍然为null:

   ArrayList<Integer> test = new ArrayList<Integer>();
   test.add(12);
   test.add(19);
   i.putExtra("use", test); Log.d("INIT - OK",""+test); 

2 个答案:

答案 0 :(得分:1)

修改我对帖子的评论的答案:

简化代码,只传递use额外的空格。看看是否有效。如果是的话;然后加回subsets额外的。

extras对象已经使用密钥use进行额外输入,这是可能的(并且基于它可能没有工作)。

另一项检查是将密钥从use更改为新值(not_used_elsewhere_cause_its_really_long),并查看当putExtras放回时是否成功传递了该值。

答案 1 :(得分:0)

如果我没记错的话,它应该更符合:

Bundle extras = incomingIntent.getExtras();
ArrayList<Integer>  = extras.getIntegerArrayList("key");