使用片段从模型中获取多个数据

时间:2018-03-21 09:30:36

标签: android android-fragments android-activity model

如何从Activity to Fragment一次检索多个数据?

我正在使用模型, 目前我只有1个textview,我所做的传输数据的方法是使用我的Fragment中的MainActivity函数返回值,这样我就不能一次收集多个数据。

如何设置和使用我的片段上的函数,该函数将在我的模型上获得多个数据。

我现在也没有数据库。但是我会在以后建造它。

以下代码,希望您理解:D T.I.A。

Codes:

// Main Activity
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        infoFrag = new InformationFragment();
        bldgInformation = new BldgInformation();
        bldgName = getIntent().getStringExtra("BLDG");
        bldgInformationSet();

//Function 

    public void bldgInformationSet(){
        bldgInformation.setBldgName(bldgName);

    }

    public String bldgInformationGet(){
        bldgInformation.getBldgName();
        return bldgName;
    }


// Model
public class BldgInformation {

    private int bldgID; // Planning to use ID after I create database,
    private String bldgName;

    public int getBldgID() {
        return bldgID;
    }

    public void setBldgID(int bldgID) {
        this.bldgID = bldgID;
    }

    public String getBldgName() {
        return bldgName;
    }

    public void setBldgName(String bldgName) {
        this.bldgName = bldgName;
    }
}



// Fragment

public class InformationFragment extends Fragment {
    private static final String TAG = "InformationFragment";

    private TextInputEditText bi_name;
    private MainActivity mainActivity;

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.information_fragment,container,false);

        bi_name = (TextInputEditText)view.findViewById(R.id.info_bldg_name);
        mainActivity = (MainActivity) getActivity();
        bi_name.setText(mainActivity.bldgInformationGet());

        return view;

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

片段:

mainActivity.bldgInformationFill(bi_name,bi_id);

活动:

 public void bldgInformationFill(TextView bi_name,TextView bi_id){
       bi_name.setText(bldgInformation.getBldgName());
       bi_id.setText(String.valueOf(bldgInformation.getBldgID()));
    }