ViewPager没有更新正确/ OnClickListener没有反应

时间:2012-01-13 08:06:53

标签: android button onclick android-viewpager

) 我在我的应用程序中实现了一个ViewPager,似乎运行良好,我使用3个XML文件作为视图。在“settings_view”上有两个EditText和一个Button。 Button实例化是正确的,因为在Debugg模式下我可以看到它不是null,但是当我点击时,没有任何反应。为了更好地理解它,这里有一段代码摘录:

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;
    }

所以我无法弄清楚它为什么不起作用,因为它实例化正确但是Listener没有反应。 有人来这里睁开我的眼睛吗? 谢谢

更新: 这些是我用findviewbyid实例化Button时得到的值:

login = Button(id = 8300 ....) mAttachInfo = NULL 。 。 。 android.widget.Button@4050d490

是否需要mAttachInfo? 或其他不正常的事情?

更新: 好的发现,如果我在XML中设置onclick然后只在代码中使用该方法,它工作正常,但现在它是相同的问题Spinner.setAdapter,没有任何反应......

更新:用那个链接解决了它,它是愚蠢的

http://code.google.com/p/ratebeerforandroid/source/browse/RateBeerForAndroid/src/com/ratebeer/android/gui/fragments/SearchFragment.java#486

1 个答案:

答案 0 :(得分:0)

我实现了onTouchListerner,然后尝试检测onclicklisterner。 你可以在这里参考我的答案:
https://stackoverflow.com/a/13264379/968532