Создание кнопок программно в ViewPager вместо XML - PullRequest
0 голосов
/ 31 января 2012

Я хочу, чтобы левая и правая кнопки на моих представлениях в ViewPager. В первом случае мне нужна только правая кнопка, а в последнем - только левая кнопка. Как бы я создал кнопки программно, используя ViewPager & PagerAdapter?

Кажется, что я не могу сделать это в instantiateItem PagerAdapter, который отстой, потому что я могу использовать только параметр 'position' в коде PagerAdapter.

Это в моем onCreate, где rl объявлен глобально в Activity:

Button btnLeftClick = new Button(this);
btnLeftClick.setText("&lt&lt");
btnLeftClick.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT));

Button btnRightClick = new Button(this);
btnRightClick.setText("&gt&gt");
btnRightClick.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT));
rl = (RelativeLayout) View.inflate(this, R.layout.view1, null);

Это то, что я пытался сделать в своем PagerAdapter, но я получаю исключение NullPointerException:

if (position == numViews) {
                rl.addView(btnLeftClick);
}

Если я вместо этого добавлю представление в onCreate без оператора if, я не получу исключение NullPointerException.

Есть ли обходной путь для этого?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Я понял это из этого источника: Ответ на этот вопрос прямо здесь: http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizontal-view-paging/comment-page-1/#comment-14065

Моя проблема заключалась в том, что мне пришлось обратиться к макету, в котором кнопка была первой, чтобы использовать findViewById.

0 голосов
/ 31 января 2012

Проверьте, является ли rl нулевым.BtnLeftClick выглядит неплохо.

...