如何在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();
       }


    }

让你的 ActivityFragment 实现 OnPageChangeListener 接口。

像这样定义 onPageSelected() 方法:

@Override
public abstract void onPageSelected (int position){
    Toast.makeText(getActivity(),"We are in page " + position, 
            Toast.LENGTH_SHORT).show();
}

别忘了打电话给

viewPager.setOnPageChangeListener(this);