如何在所有屏幕编辑文本的最后一页验证视图寻呼机中的所有屏幕?
How to validate all screens in view pager at last page for all screens edittext?
我想将验证设置为最后一个屏幕,所有滑动屏幕数据将由用户插入或不使用 viewpager。
pageradapter class
public class MyViewPagerAdapter extends PagerAdapter {
private LayoutInflater layoutInflater;
private Context context;
private int[] layouts;
public MyViewPagerAdapter(Context context,int[] layouts) {
this.context=context;
this.layouts=layouts;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(layouts[position], container, false);
container.addView(view);
return view;
}
@Override
public int getCount() {
return layouts.length;
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
}
在活动 oncreate 方法中向 viewpager 添加布局
layouts = new int[]{
R.layout.welcome_side1,
R.layout.welcome_side2,
R.layout.welcome_side3,
R.layout.welcome_side4};
// making notification bar transparent
changeStatusBarColor();
myViewPagerAdapter = new MyViewPagerAdapter(context,layouts);
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
点击按钮 activity 我想在这里验证我的第一个屏幕 edittext
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
//i want to validate here about my all layout files empty fields or user insert correct valuers.
}
}
});
我所有的布局屏幕都是这样的我想验证编辑文本是否有价值并使用页面适配器跳转到特定屏幕。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_screen1">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/linearlayout1"
android:layout_marginBottom="40dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
</RelativeLayout>
使用 MVP 模式或至少使 Presenter part/something 用于数据存储(每个片段分开),然后稍后从中获取数据。如果您不确定,该怎么做然后问问自己您如何处理屏幕方向(也许您已经有一些东西,所以尝试使用它)(不是说 onSaveInstanceState())。
试着这样做
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
for (int i = 0; i < viewPager.getChildCount(); i++) {
View v = viewPager.getChildAt(i);
EditText ed = v.findViewById(R.id.editText);
if (ed != null) {
if (ed.getText() == null || ed.getText().toString().equals("")) {
// here text is empty, do something...
return;
}
}
}
// here, all edittext were edited, do something
}
}
});
我想将验证设置为最后一个屏幕,所有滑动屏幕数据将由用户插入或不使用 viewpager。
pageradapter class
public class MyViewPagerAdapter extends PagerAdapter {
private LayoutInflater layoutInflater;
private Context context;
private int[] layouts;
public MyViewPagerAdapter(Context context,int[] layouts) {
this.context=context;
this.layouts=layouts;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(layouts[position], container, false);
container.addView(view);
return view;
}
@Override
public int getCount() {
return layouts.length;
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
View view = (View) object;
container.removeView(view);
}
在活动 oncreate 方法中向 viewpager 添加布局
layouts = new int[]{
R.layout.welcome_side1,
R.layout.welcome_side2,
R.layout.welcome_side3,
R.layout.welcome_side4};
// making notification bar transparent
changeStatusBarColor();
myViewPagerAdapter = new MyViewPagerAdapter(context,layouts);
viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
点击按钮 activity 我想在这里验证我的第一个屏幕 edittext
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
//i want to validate here about my all layout files empty fields or user insert correct valuers.
}
}
});
我所有的布局屏幕都是这样的我想验证编辑文本是否有价值并使用页面适配器跳转到特定屏幕。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_screen1">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/linearlayout1"
android:layout_marginBottom="40dp"
android:ems="10"
android:inputType="textPersonName"
android:text="Name" />
</RelativeLayout>
使用 MVP 模式或至少使 Presenter part/something 用于数据存储(每个片段分开),然后稍后从中获取数据。如果您不确定,该怎么做然后问问自己您如何处理屏幕方向(也许您已经有一些东西,所以尝试使用它)(不是说 onSaveInstanceState())。
试着这样做
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
for (int i = 0; i < viewPager.getChildCount(); i++) {
View v = viewPager.getChildAt(i);
EditText ed = v.findViewById(R.id.editText);
if (ed != null) {
if (ed.getText() == null || ed.getText().toString().equals("")) {
// here text is empty, do something...
return;
}
}
}
// here, all edittext were edited, do something
}
}
});