[英]findViewById from viewpager
您好,我正在嘗試使用viewpager。
我的問題是我無法從滑動視圖中找到視圖,但得到了NPE。
這是我確定視圖的代碼:
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
focusedView = mPager.getChildAt(arg0);
button = (ImageButton) focusedView.findViewById(R.id.button);
button.setOnClickListener(this);
}
我在這條線上得到了NPE:
button.setOnClickListener(this);
我所有的滑動視圖都有一個帶有“ button” id的按鈕。
我也試過這個:
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
button = (ImageButton) mPager.findViewById(R.id.button);
button.setOnClickListener(this);
}
我也是NPE。
如何從Pageviewer內的視圖中找到視圖?
而是處理片段內的click事件,例如,可以在public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
進行操作。
您可能在活動或片段中包含此代碼。
為活動或片段上的按鈕聲明一個final
變量,在onCreate
或onResume
獲取對該變量的引用,然后就可以在onPageSelected
使用它。
示例(不完整)代碼:
public class YourActivity extends Activity {
private final Button button;
@Override
protected void onResume() {
button = (Button) findViewById(R.id.button);
}
// view pager
@Override
public void onPageSelected(int arg0) {
focusedView = mPager.getChildAt(arg0);
button.setOnClickListener(this);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.