两步注册,下一个fragment by button
Registration with two steps, next fragment by button
我想在我的应用程序中处理用户注册。我认为使用片段是处理它的最佳方式。
我更喜欢使用按钮移动到注册完成片段,而不是 swype。
我必须将几个字段发送到另一个字段,最后通过 Retrofit 发送所有数据。
有什么解决办法吗?
您可以实施回调来保存 activity 上的值。
首先创建界面:
public interface ActivityCallback {
void sendData(String data1,String data2);
}
然后让你的activity实现这个接口:
public class MyActivity extends AppCompatActivity implements ActivityCallback{
private ArrayList<String> arrayData = new ArrayList<>();
...
@Override
void sendData(String data1, String data2){
this.arrayData.add(data1);
this.arrayData.add(data2);
}
...
}
然后在您的片段上,当您决定进入下一步时:
public class YourFragment extends Fragment{
private Button nextButton;
private EditText text1;
private EditText text2;
protected ActivityCallback callback;
...
@Override
public void onAttach(Context context) {
super.onAttach(context);
callback = (ActivityCallback) context;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
...
nextButton = (Button) findViewById(R.id.next_button);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callback.sendData(text1.getText().toString(),text2.getText().toString());
}
});
}
}
我想在我的应用程序中处理用户注册。我认为使用片段是处理它的最佳方式。 我更喜欢使用按钮移动到注册完成片段,而不是 swype。
我必须将几个字段发送到另一个字段,最后通过 Retrofit 发送所有数据。
有什么解决办法吗?
您可以实施回调来保存 activity 上的值。
首先创建界面:
public interface ActivityCallback {
void sendData(String data1,String data2);
}
然后让你的activity实现这个接口:
public class MyActivity extends AppCompatActivity implements ActivityCallback{
private ArrayList<String> arrayData = new ArrayList<>();
...
@Override
void sendData(String data1, String data2){
this.arrayData.add(data1);
this.arrayData.add(data2);
}
...
}
然后在您的片段上,当您决定进入下一步时:
public class YourFragment extends Fragment{
private Button nextButton;
private EditText text1;
private EditText text2;
protected ActivityCallback callback;
...
@Override
public void onAttach(Context context) {
super.onAttach(context);
callback = (ActivityCallback) context;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
...
nextButton = (Button) findViewById(R.id.next_button);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
callback.sendData(text1.getText().toString(),text2.getText().toString());
}
});
}
}