从片段中获取输入

时间:2018-04-28 12:58:14

标签: android input android-viewpager

我有一个包含3个片段的ViewPager,当点击下一个按钮时,我会从每个片段的字段中获取输入,但我无法找到获取输入的方法用户在片段之间滚动,任何人都可以帮助我!

这是我的第一个片段中的代码:

    public class signupfrag1 extends Fragment {
    private TextInputEditText fName, lName;
    public Spinner spncountry, spncity;
    private Button next1;
    private String vfName, vlName, vcountry, vcity;
    private String method;
    signupfrag1Listener activityCommander;

    public interface signupfrag1Listener{
        public void getDataFromFrag1(String fName, String lName, String countryName, String cityName);
    }

   @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        try{
            activityCommander = (signupfrag1Listener) context;
        }catch (ClassCastException e){
            throw new ClassCastException(context.toString());
        }

    }
@Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.signupfrag1, container, false);
     fName = (TextInputEditText) view.findViewById(R.id.edtFName);
     lName = (TextInputEditText) view.findViewById(R.id.edtLName);
     spncountry = (Spinner) view.findViewById(R.id.cmbCountry);
     spncity = (Spinner) view.findViewById(R.id.cmbCities);
     next1 = (Button) view.findViewById(R.id.btnNext2);

next1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View view) {
             vfName = fName.getText().toString();
             vlName = lName.getText().toString();

             if(vfName.equals("") || vfName.length()==1){
                 fName.setError("please enter a correct first name!");
             }
             else if(vlName.equals("") || vlName.length()==1){
                 lName.setError("Please enter a correct first name!");
             }
             else
                startFrag2(view);
         }
     });}

public void startFrag2(View view){
            activityCommander.getDataFromFrag1(vfName, vlName, vcity, vcountry);

        }

这是我主要活动的代码:

public class Main2Activityforfragments extends AppCompatActivity implements signupfrag1.signupfrag1Listener, signupfrag2.signupfrag2Listener {
    private ViewPager fragsViewPager;
    private SectionsPagerAdapter1 sectionsPagerAdapter1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2_activityforfragments);

fragsViewPager = (ViewPager) findViewById(R.id.fragsViewPager);
    sectionsPagerAdapter1 = new SectionsPagerAdapter1(getSupportFragmentManager());
    fragsViewPager.setAdapter(sectionsPagerAdapter1);


}


//this get called when the next button is clicked
@Override
public void getDataFromFrag1(String fName, String lName, String cityName, String countryName) {
    if(fragsViewPager.getCurrentItem() == 0){
        fragsViewPager.setCurrentItem(1);}

}

1 个答案:

答案 0 :(得分:0)

如果您在第一个片段中,则创建ref。接口并调用其方法并传递值单击您想要的内容,并且需要在GetAttribute中实现Two接口。在First Fragment中调用它的方法。您可以在SecondFragment

中创建界面Two
SecondFragment

当你达到第二个时,你从第一个片段得到值,并继续第三个片段。