0

別のアクティビティでデータベースから Serializable オブジェクトをフェッチするアクティビティがあります。そのオブジェクトには、文字列を返す関数 getName() が含まれています。

その文字列をフラグメントに含まれる編集テキストのテキストとして設定したいと考えています。何をしてもうまくいきません。何か助けはありますか?

Form.java アクティビティ - フラグメントをホストします。この関数は、"Patient" オブジェクトを使用してフラグメントを編集しようとします。LogCat に表示されるので、オブジェクトがアクティビティによって受信されたと確信しています。

public void Populate(Patient patient) {
        Frag1 fragment = 
                  (Frag1) getSupportFragmentManager().findFragmentByTag(
                               "android:switcher:"+R.id.pager+":0");
              if(fragment != null)
              {
                 if(fragment.getView() != null) 
                 {
                    fragment.setName(patient.getName());
                    fragment.getView().invalidate();
                    Log.d(patient.getName(), "supbrah"); // doesn't return anything :(
                 }
              }
    }

Frag1.java - フラグメントのコード

public class Frag1 extends Fragment {

    EditText name;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.activity_form, container, false);

        name = (EditText) v.findViewById(R.id.name_edit);

        return v;
    }

    public String getName() {
        String patient = name.getText().toString();
        return patient;
    }

    public void setName(String text) {
        name.setText(text);
    }

}

前もって感謝します!

4

0 に答える 0