我在活動中包含的片段中註冊表單。在片段中單擊提交按鈕時,我需要在主Activity中實現一個函數。通過執行此行:將片段中的EditText值傳遞給活動
android:onClick="signUp"
它直接進入活動。但我怎樣才能得到片段值?這很複雜,因爲我的碎片沒有任何想法,因爲我在同一個地方切換了不同的碎片。
我的嘗試:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_sign_up, container, false);
email =(EditText) v.findViewById(R.id.emailEt);
mListener.setEmail(email.getText().toString());
pass1 = (EditText) v.findViewById(R.id.passEt1);
mListener.setPass1(pass1.getText().toString());
pass2 = (EditText) v.findViewById(R.id.passEt2);
mListener.setPass2(pass2.getText().toString());
pseudo = (EditText) v.findViewById(R.id.pseudoEt);
mListener.setPseudo(pseudo.getText().toString());
signup =(Button) v.findViewById(R.id.signUpB);
return v;
}
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onSignUpFragmentInteraction(Uri uri);
public void setEmail(String email);
public void setPass1(String pass1);
public void setPass2(String pass2);
public void setPseudo(String pseudo);
}
然後在我的活動:
@Override
public void setEmail(String email) {
}
@Override
public void setPass1(String pass1) {
}
@Override
public void setPass2(String pass2) {
}
@Override
public void setPseudo(String pseudo) {
}
@Override
public void onLoginFragmentInteraction(Uri uri) {
}
但我不知道現在該做什麼...
你可以通過在一個片段中有一個接口並在你的活動中實現它,這看起來像你做的。如果是的話,你有什麼問題? –
我編輯過,我現在沒有如何獲取值 –
https://developer.android.com/training/basics/fragments/communicating.html 這就是你所需要知道的。如果您想在用戶輸入時獲取editText值,請使用TextWatcher。 –