簡體   English   中英

如何使用setOnClickListener向viewpager添加按鈕

[英]How to add a button to viewpager with setOnClickListener

我有一個帶有按鈕的布局。 我使用FragmentActivity:

public class slidepage extends FragmentActivity {

private static final int NUM_PAGES = 5;

private ViewPager mPager;

private PagerAdapter mPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_screen_slide);


    mPager = (ViewPager) findViewById(R.id.pager);
    mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
    mPager.setAdapter(mPagerAdapter);

    Button Back = (Button) findViewById(R.id.back);

    Back.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            onBackPressed();

        }
    });

}

}

幻燈片類別:

public class slider extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    ViewGroup view;

    if(GlobalConfig.tryb) {
        view = (ViewGroup) inflater.inflate(R.layout.n_podglad, container, false);
    } else {
        view = (ViewGroup) inflater.inflate(R.layout.d_podglad, container, false);
    }

    /* Powrót */

    Button Back = (Button) view.findViewById(R.id.back);

    Back.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            //onBackPressed();

        }
    });

    return view;
}
}

不幸的是我的按鈕不起作用。 我在日志中收到空引用。 怎么了? 如何在Viewpager中的按鈕上設置OnClickListener?

里面ScreenSlidePagerAdapterinstantiateItem方法寫你的按鈕在你點擊不slidepage

@Override
public Object instantiateItem(View container, int position) {
    // TODO Auto-generated method stub
    LayoutInflater inflater = (LayoutInflater) act
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View layout= inflater.inflate(R.layout.pager_layout, null);
    Button Back= (Button) layout.findViewById(R.id.back);
    Back.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {

        onBackPressed();

    }
  });
    return layout;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM