簡體   English   中英

來自viewpager的findViewById

[英]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變量,在onCreateonResume獲取對該變量的引用,然后就可以在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.

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