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))调用的多个片段;