)
Я реализовал ViewPager в своем приложении и, кажется, работает хорошо, я использую 3 XML-файла для представлений. в "settings_view" есть два EditText и одна кнопка. Кнопка инстанцирует правильно, потому что в режиме отладки я вижу, что она не нулевая, но когда я нажимаю, ничего не происходит. Чтобы лучше это понять, вот выдержка из кода:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater getView = getLayoutInflater();
View pushview = getView.inflate(R.layout.push_view,null);
View listenView =getView.inflate(R.layout.listen_view, null);
View settingsView = getView.inflate(R.layout.settings_view, null);
login = (Button)settingsView.findViewById(R.id.ok_button1);
login_user=(EditText)settingsView.findViewById(R.id.user1);
login_pw=(EditText)settingsView.findViewById(R.id.pw1);
ViewPager myPager = (ViewPager)findViewById(R.id.pager);
MyPagerAdapter adapter = new MyPagerAdapter();
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
сделать что-то
}
});
А вот и мой пейджинговый адаптер:
class MyPagerAdapter extends PagerAdapter {
public int getCount() {
return 3;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId = 0;
switch (position) {
case 0:
resId = R.layout.settings_view;
break;
case 1:
resId = R.layout.push_view;
break;
case 2:
resId = R.layout.listen_view;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
Так что я не могу понять, почему он не работает, потому что он создает правильные экземпляры, но слушатель не реагирует.
Кто-нибудь здесь, чтобы открыть мои глаза?
Спасибо
Обновление:
Это значения, которые я получаю, когда создаю экземпляр Button с помощью findviewbyid:
логин = кнопка (id = 8300 ....)
mAttachInfo = нуль
,
,
,
android.widget.Button@4050d490
Необходим ли mAttachInfo?
или что-то еще не нормальное?
Обновление:
Хорошо, выяснилось, что если я настраиваю onclick в XML, а затем использую только метод в коде, он работает нормально, но теперь это та же проблема Spinner.setAdapter, ничего не происходит ...
обновление: решено с помощью этой ссылки, оно блестящее
http://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/com/ratebeer/android/gui/fragments/SearchFragment.java#486