Как передать в настоящее время сфокусированное представление пейджера представления моему пользовательскому методу onClick? - PullRequest
0 голосов
/ 11 февраля 2012

У меня есть активность с ViewPager, и у меня есть три макета. В каждой раскладке у меня по 10 кнопок, и я бы хотел, чтобы каждая кнопка выполняла функцию одним нажатием Так что, если я пойду с тривиальным методом определения метода onClick () для каждой кнопки, это будет забавно и утомительно, потому что у меня будет 30 из этих вызовов setOnClickListener (this) и 30 методов onClick.

Проходя по сайту разработчиков, я обнаружил очень важную функцию android: onClick , с помощью которой я могу зарегистрировать все ключи для пользовательского метода onClick в самом файле xml, а затем нажать Кнопка, этот метод деятельности будет вызван.

Но в моем случае, используя пейджер View, я уже вывел вид на экран. Я зарегистрировал собственный метод onClick под названием onClickTest () в своей активности.

public void onClickTest(View v) {

        int id = v.getId();
        String idname = getResources().getResourceEntryName(id);    
        Log.i("Sen", "clicked view = "+idname);

        switch (id) {
        case R.id.btn_test:
            testActivity();
            break;
        default:
            break;
}

Но когда я нажимаю кнопку в представлении viewPager, я не могу выполнить мой метод onClickMethod. Я подозреваю, что это не получает представление.

Это метод создания экземпляра моего ViewPager

public Object instantiateItem(View collection, int position) {
            final LayoutInflater inflater = (LayoutInflater) TestActivity.this
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

                switch (position) {
                case 0:
                    View v0 = inflater.inflate(R.layout.layout1, null, false);
                    ((ViewPager) collection).addView(v0, 0);
                    return v0;              
                default:
                    return true;
            }
    }

В layout1 есть 10 ключей, и btn_test - это один ключ.

Не могли бы вы сказать мне, как заставить это работать?

Спасибо
Sen

1 Ответ

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

Ваш вопрос немного не связан. Вы говорите о множественном onClick(), затем говорите об изучении android:onClick, затем переходите к «регистрации» слушателя onClick(), хотя вы не говорите, с чем связан onClickTest().

Вы можете выбрать любой из этих методов и заставить его работать. Попробуйте добавить android:onClick="onClickTest" к вашей кнопке btn_test в XML. Если у вас уже есть, покажите это в следующий раз, чтобы нам не пришлось угадывать, что вы уже сделали:).

...