如何将视图寻呼机的当前焦点视图提供给我的自定义onClick方法?

时间:2012-02-11 13:32:00

标签: android onclick android-viewpager

我有一个ViewPager的Activity,我有三个布局。在每个布局中,我每个都有10个按钮,我想让每个按钮在点击时起作用。因此,如果我使用为每个按钮定义onClick()方法的简单方法,它将是有趣和令人厌倦的,因为我将有30个这些setOnClickListener(this)调用和30个onClick方法。

在浏览开发人员网站时,我找到了一个非常重要的函数android:onClick,使用它我可以将所有键注册到xml文件本身的自定义onClick方法,然后单击按钮,这将调用Activity的方法。

但在我的情况下,使用View寻呼机我已经在屏幕上显示了一个视图。我在我的Activity中注册了一个名为 onClickTest()的自定义onClick方法。

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 是其中的一个键。

你能告诉我如何使这个工作吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

你的问题有点不相干。您谈论了多个onClick(),然后谈论了解android:onClick,然后跳转到“注册”onClick()听众,尽管您没有说明onClickTest()与之绑定。

您可以选择其中任何一种方法并使其正常工作。尝试将android:onClick="onClickTest"添加到XML中的按钮btn_test。如果你已经有了,请在下次展示,这样我们就不会猜测你已经做过的事情:)。