2015-08-14 74 views
-1

數據庫管理器代碼Android的 - 如何自定義對象傳遞給片段

public HouseHoldIncome getHoseHold(String id) { 
    HouseHoldIncome listViewEditing = null; 
    try { 
     Dao<HouseHoldIncome, String> 
     householdIncomeDao =  dbHelper.getDaoHouseHoldIncome(); 
     listViewEditing= householdIncomeDao.queryForId(id); 
    } catch (SQLException e) { 
     Logger.get().e(GreenAgriApp.getInstance(), e.getMessage()); 
     e.printStackTrace(); 
    } 
    return listViewEditing; 
} 

    Adapter class 

    updatebutton=(Button)view.findViewById(R.id.Update); 

    updatebutton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     update((int) v.getTag()); 
    } 

    }); 


public void update(int position) 
{ 
    HouseHoldIncome houseHoldIncome=arrayList.get(position); 
    DatabaseManager.getInstance(mcontext) 
.getHoseHold(String.valueOf(position)); 
    arrayList.add(position,houseHoldIncome); 
    notifyDataSetChanged(); 
    } 

我是新來的Android,我想創建一個具有形式預先填入數據的更新視圖。我想從update方法傳遞一個自定義對象到一個片段。我怎樣才能做到這一點?

+0

它看起來並不像你所發佈的代碼到你的片段,或者你需要傳遞到您的片段的對象。我有點困惑你想要完成什麼。 –

回答

0

一個簡單的方法是在您的Fragment上創建一個public setter方法,您可以使用該方法在其中設置數據。

片段

public class MyFragment extends Fragment { 

    private CustomObject object; 

    ... 

    public void setCustomObject(CustomObject object){ 
     this.object = object; 
    } 

} 

與數據

CustomObject object = new CustomObject(); 

MyFragment fragment = new MyFragment(); 
fragment.setCustomObject(object); 

看看這個question以獲取更多信息創建片段。

0

您應該使您的自定義對象類可序列化或可分段,從而允許您通過片段的getArguments()方法將數據發送到片段。

  1. 使您的類可以序列化或可以parcelable(因爲它更有效)。
  2. 創建一個包,並使用bundle.putParcelable()將您的自定義對象放入包中。

3.通過使用fragment.setArguments(Bundle)方法設置參數來分段數據。

4.Access您的自定義對象使用getArguments片段()方法中

相關問題