Android 从OnTables中的片段获取字段值

Android 从OnTables中的片段获取字段值,android,android-fragments,tabs,Android,Android Fragments,Tabs,我正在尝试在选项卡之间设置验证脚本(如果不填写必填字段,用户无法从一个选项卡切换到另一个选项卡)。从片段/选项卡到我的TabListener类的onTabSelected方法获取字段值时遇到问题。事实上,我可以识别所选选项卡的索引,并希望使用它来验证上一个选项卡的字段 import android.app.ActionBar; import android.app.Fragment; import android.app.FragmentTransaction; public class M

我正在尝试在
选项卡之间设置验证脚本(如果不填写必填字段,用户无法从一个选项卡切换到另一个选项卡)。从
片段
/
选项卡
到我的
TabListener
类的
onTabSelected
方法获取字段值时遇到问题。事实上,我可以识别所选选项卡的索引,并希望使用它来验证上一个选项卡的字段

import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentTransaction;


public class MyTabListener implements ActionBar.TabListener{

private Fragment fragment;




public MyTabListener(Fragment fragment) {
    this.fragment = fragment;
}

@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    if(tab.getPosition() == 0)
    {
        ft.replace(R.id.content, fragment);
    }
    else if(tab.getPosition() == 1)
    {
        ft.replace(R.id.content, fragment);
    }
    else if(tab.getPosition() == 2)
    {
        ft.replace(R.id.content, fragment);
    }
}


@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
    ft.remove(fragment);
}


@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {

}

}

在你的片段里放一个函数

public static boolean checkValidation() {

/*...check validation for all fields here,
return true if all fields are filled else return false....*/

    if(validated){
       return true;
    }else {
       return false;
    }
return false;
}
然后在安大略省当选

     @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    if(tab.getPosition() == 0)
    {
        if(YourFragment.checkValidation() == true) {
        ft.replace(R.id.content, fragment);
        } else{
            //do something
        }
    }
}

我不确定这是否有效。试试这个,然后告诉我这个是否有效。:)

在片段中放置一个函数

public static boolean checkValidation() {

/*...check validation for all fields here,
return true if all fields are filled else return false....*/

    if(validated){
       return true;
    }else {
       return false;
    }
return false;
}
然后在安大略省当选

     @Override
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
    if(tab.getPosition() == 0)
    {
        if(YourFragment.checkValidation() == true) {
        ft.replace(R.id.content, fragment);
        } else{
            //do something
        }
    }
}

我不确定这是否有效。试试这个,然后告诉我这个是否有效。:)

是否仅使用一个片段?由productTab.SetTableStener(新的MyTableStener(productsFragmentTab))调用的多个片段;是否仅使用一个片段?由productTab.SetTableStener(新的MyTableStener(productsFragmentTab))调用的多个片段;