У меня есть активность с 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