Android - 如何将自定义对象传递给片段

时间:2015-08-14 16:13:00

标签: android android-fragments

数据库管理员代码

 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方法传递给片段。我怎样才能做到这一点?

2 个答案:

答案 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

答案 1 :(得分:0)

您应该使自定义对象类可序列化或可分区化,这允许您通过片段的getArguments()方法将数据发送到片段。

  1. 使您的课程可序列化或可分割(更喜欢Parcelable,因为它更有效)。
  2. 创建一个包,并使用bundle.putParcelable()将您的自定义对象放入包中。
  3. 3.通过使用fragment.setArguments(Bundle)方法设置其参数,将数据传递给片段。

    4.使用getArguments()方法

    从片段中访问自定义对象