android-在 viewpager 中如何实现 Button 的 onClick 方法

问题描述

在 viewpager 中如何实现 Button 的 onClick 方法

我想在viewpaper中,点击按钮弹出Toast信息,并且想知道如何在viewpaper上访问views?
我用的以下的代码,不好用。

public class MyPagerAdapter extends PagerAdapter {

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public Object instantiateItem(final View collection, final int position) {
         v = new View(collection.getContext());
        LayoutInflater inflater =
                (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        int resId = 0;
        switch (position) {
        case 0:
            resId = R.layout.cate1;
            v = inflater.inflate(R.layout.cate1, null, false);
            add1 = (Button) v.findViewById(R.id.btnAdd);
            add1.setOnClickListener( new OnClickListener() {
                public void onClick(View m) {
                   Toast.makeText(collection.getContext(),"click",Toast.LENGTH_LONG).show();
                }
            });

            break;
        case 1:
            resId = R.layout.cate2;
            break;
        case 2:
            resId = R.layout.cate3;
            break;
        }

        View view = inflater.inflate(resId, null);
        ((ViewPager) collection).addView(view, 0);

        return view;
    }

    @Override
    public void destroyItem(final View arg0, final int arg1, final Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);

    }

    @Override
    public boolean isViewFromObject(final View arg0, final Object arg1) {
        return arg0 == ((View) arg1);

    }

    @Override
    public void finishUpdate(View arg0) {
        // TODO Auto-generated method stub

    }

    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1) {
        // TODO Auto-generated method stub

    }

    @Override
    public Parcelable saveState() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void startUpdate(View arg0) {
        // TODO Auto-generated method stub

    }
        }

下面是 button onclick代码,也没有实现

v = inflater.inflate(R.layout.cate1, null, false);
            add1 = (Button) v.findViewById(R.id.btnAdd);
            add1.setOnClickListener( new OnClickListener() {
                public void onClick(View m) {
                   Toast.makeText(collection.getContext(),"click",Toast.LENGTH_LONG).show();
                }
            });

请求大家的帮忙,看看如何处理这个问题。

解决方案

把你代码中的

((ViewPager) collection).addView(view, 0);

    return view;

改为

((ViewPager) collection).addView(v, 0);

    return v;

解决方案二:

参考github.com/Shereef/ViewPagerPlusExpandableList ,可以很好的理解viewpager。

时间: 2024-09-20 00:48:46

android-在 viewpager 中如何实现 Button 的 onClick 方法的相关文章

android-在 viewpager 中如何创建 button onClick 方法

问题描述 在 viewpager 中如何创建 button onClick 方法 我想使用viewpager在按钮点击时Toast一个消息,也想了解更多关于如何访问viewpager中的视图的信息.用的以下的信息,没什么反应. public class MyPagerAdapter extends PagerAdapter { @Override public int getCount() { return 3; } @Override public Object instantiateItem

代码-Android L QuickSetting中增加一个button

问题描述 Android L QuickSetting中增加一个button 按照MTK的提供的文档,我添加了一个按钮,代码是编译过了,但是重启没有没有效果,也没有错误日志,但是恢复出厂设置之后,就报了一个安全的异常, 解决方案 补上日志 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.systemui.SystemUIApplication" on path: DexPathLis

android实现http中请求访问添加cookie的方法_Android

本文实例讲述了android实现http中请求访问添加cookie的方法.分享给大家供大家参考,具体如下: 第一种 HashMap<String, String> map = new HashMap<String, String>(); map.put("cookie","p1u_id=4eb591e73554db0f4d3300cb656113abfb968ef6b0ee2b5de0a35caa5217c51faa028b453576b35c&quo

Android在代码中设置沉浸式布局的方法

先导入该包,进行 系统systemBar 管理 compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' 在BaseActivity中添加 该 字段: public class BaseActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >=

Android实现EditText中添加和删除bitmap的方法

本文实例讲述了Android实现EditText中添加和删除bitmap的方法.分享给大家供大家参考,具体如下: SpannableString mSpan1 = new SpannableString("1"); /* * this is add bitmap on edit text */ private void displayBitmapOnText(Bitmap thumbnailBitmap) { if(thumbnailBitmap == null) return; in

Android实现内存中数据保存到sdcard的方法

本文实例讲述了Android实现内存中数据保存到sdcard的方法.分享给大家供大家参考,具体如下: public static void writeToSdCard(String s) { try { File dst = new File("/sdcard/test_sensor/" + mName + ".txt"); File parent = dst.getParentFile(); if(!parent.exists()) { parent.mkdirs

Android 在viewPager中双指缩放图片双击缩放图片单指拖拽图片的实现思路

我们就把这个问题叫做图片查看器吧,它的主要功能有: 1.双击缩放图片. 2. 双指缩放图片. 3.单指拖拽图片. 为此这个图片查看器需要考虑以下的技术点: 一.双击缩放图片: 1.如果图片高度比屏幕的高度小得多,那么就将图片放大到高度与屏幕高度相等,否则就放大一个特定的倍数. 2.如何判断是否到达这个倍数来停止缩放. 3.判断完且停止放大后,图片可能已经超出了这个倍数需要的大小,如何回归到我们的目标大小. 4.判断完且停止缩小后,图片宽度可能已经小于屏幕宽度,在两边留下了空白,如何重置为原来的大

Android利用ViewPager实现用户引导界面效果的方法_Android

本文实例讲述了Android利用ViewPager实现用户引导界面效果.分享给大家供大家参考,具体如下: 我相信有很多朋友在装完软件首次打开时,有很多软件都有一个软件功能介绍, 例如刚装完微信打开它,有很多介绍微信功能的图片,并且在屏幕下方有很多小圆点提示你当前图片的位置. 今天我就来实现这么个功能 所实现的功能: 1.可以左右滑动功能图片. 2.图片的索引 看出当前图片所在的位置. 3.可循环滑动. 4.图片的索引带有动画效果. 本次学习主要是利用ViewPager实现用户引导界面 在这里,我

Android利用ViewPager实现用户引导界面效果的方法

本文实例讲述了Android利用ViewPager实现用户引导界面效果.分享给大家供大家参考,具体如下: 我相信有很多朋友在装完软件首次打开时,有很多软件都有一个软件功能介绍, 例如刚装完微信打开它,有很多介绍微信功能的图片,并且在屏幕下方有很多小圆点提示你当前图片的位置. 今天我就来实现这么个功能 所实现的功能: 1.可以左右滑动功能图片. 2.图片的索引 看出当前图片所在的位置. 3.可循环滑动. 4.图片的索引带有动画效果. 本次学习主要是利用ViewPager实现用户引导界面 在这里,我