搜尋此網誌

中央氣象局:高雄市今明天氣預報

2013年2月27日 星期三

[Android]Use intent to pass object across activities

跨activity的物件傳送

 

Class A 傳到 B

  • A:

    Intent i = new Intent(A.this, B.class);

    i.putExtra("obj",obj); //前面參數是代號,後面參數是要傳的自定義物件


    ex:

                    Intent intent4 = new Intent(AnswerQuestion.this,
                            AnswerQueFillinShining.class);

                    SlotBarData slotobj = new SlotBarData();
                    //小心物件收不到的問題,nullpointerException
                    slotobj.setAll(testXML.queDatas[0].getAll());

                    intent4.putExtra("slotobj", slotobj);
                    startActivity(intent4);
  •  B:

     obj o = (obj)getIntent().getSerializableExtra("obj");

    ex:
    //接收SlotBarData物件
            QueData queData =   (QueData) getIntent().getSerializableExtra("slotobj");

    並且,在obj.java中(就是你自定義的類別裡) 要實作 Serializable 介面,也就是:

    (obj.java 中)

    @SuppressWarnings("serial") // 可以避免eclipse跳出警告
    public class obj implements   Serializable{
    ...其他程式碼
    }




沒有留言:

張貼留言