如何在viewpager方法中为应用程序的每个滑动屏幕吐司唯一的消息?
How to toast a message unique to each swiping screen of the app in viewpager method?
问题:我正在构建一个 android 应用程序,我在其中使用 viewpager 方法来滑动屏幕。
我需要针对每个屏幕显示 toast 消息,例如 "msg1" 显示屏幕 1,"msg2" 显示屏幕 2 等等。但是我的代码如下,没有显示任何内容:
代码:
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[]{R.drawable.login_screen_1, R.drawable.login_screen_2};
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(getApplicationContext(), position, Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[]{R.drawable.login_screen_1, R.drawable.login_screen_2};
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = FaceBook.this;
ImageView imageView = new ImageView(context);
// int padding = context.getResources().getDimensionPixelSize(
// R.dimen.padding_medium);
// imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
问题 2
在我的应用程序中,我在单击按钮时调用异步任务,我使用 onpreexecute 方法启动 "progress dialog" 并使用 onpostexecute 结束相同的任务。
我在执行上述操作时遇到此错误 - "View not attached to window manager." 这是我的异步代码 -
/**
* Async task class to get json by making HTTP call
*/
private class questionfeed_async extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Hi "+userName+ "! Loading your question feed ");
pDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (pDialog.isShowing()) {
pDialog.dismiss();
}
}
让你的 Activity
或 Fragment
实现 OnPageChangeListener
接口。
像这样定义 onPageSelected()
方法:
@Override
public abstract void onPageSelected (int position){
Toast.makeText(getActivity(),"We are in page " + position,
Toast.LENGTH_SHORT).show();
}
别忘了打电话给
viewPager.setOnPageChangeListener(this);
问题:我正在构建一个 android 应用程序,我在其中使用 viewpager 方法来滑动屏幕。 我需要针对每个屏幕显示 toast 消息,例如 "msg1" 显示屏幕 1,"msg2" 显示屏幕 2 等等。但是我的代码如下,没有显示任何内容: 代码:
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[]{R.drawable.login_screen_1, R.drawable.login_screen_2};
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
Toast.makeText(getApplicationContext(), position, Toast.LENGTH_LONG).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[]{R.drawable.login_screen_1, R.drawable.login_screen_2};
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = FaceBook.this;
ImageView imageView = new ImageView(context);
// int padding = context.getResources().getDimensionPixelSize(
// R.dimen.padding_medium);
// imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
问题 2
在我的应用程序中,我在单击按钮时调用异步任务,我使用 onpreexecute 方法启动 "progress dialog" 并使用 onpostexecute 结束相同的任务。
我在执行上述操作时遇到此错误 - "View not attached to window manager." 这是我的异步代码 -
/**
* Async task class to get json by making HTTP call
*/
private class questionfeed_async extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pDialog = new ProgressDialog(getActivity());
pDialog.setMessage("Hi "+userName+ "! Loading your question feed ");
pDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if (pDialog.isShowing()) {
pDialog.dismiss();
}
}
让你的 Activity
或 Fragment
实现 OnPageChangeListener
接口。
像这样定义 onPageSelected()
方法:
@Override
public abstract void onPageSelected (int position){
Toast.makeText(getActivity(),"We are in page " + position,
Toast.LENGTH_SHORT).show();
}
别忘了打电话给
viewPager.setOnPageChangeListener(this);