以编程方式注册多个点击事件(Android/Java)

以编程方式注册多个点击事件(Android/Java),java,android,Java,Android,所以我有一个程序,它创建了我的卡片列表,这些卡片是相对的布局,它们看起来像这样 以下是it创建的代码。它在一个for循环中 LayoutInflater mInflater = (LayoutInflater) atv.getSystemService(atv.LAYOUT_INFLATER_SERVICE); LinearLayout relativeLayoutz = (LinearLayout) mInflater.inflate(R.layout.rt

所以我有一个程序,它创建了我的卡片列表,这些卡片是相对的布局,它们看起来像这样

以下是it创建的代码。它在一个for循环中

LayoutInflater mInflater = (LayoutInflater) atv.getSystemService(atv.LAYOUT_INFLATER_SERVICE);

                LinearLayout relativeLayoutz = (LinearLayout) mInflater.inflate(R.layout.rtl_enterprise, parent);

                RelativeLayout rl = (RelativeLayout) relativeLayoutz.findViewById(R.id.rl_empresa);
                rl.setId(i);
                ImageView img = (ImageView) rl.getChildAt(0);

                //
                //Performance bottleneck needs fixing/ not loading all images and overloading thread
                //
                //loadImageByUrl(atv, enterprises.getEnterprises().get(k).getPhoto().toString(), img);

                TextView txt = (TextView) rl.getChildAt(1);
                txt.setText(enterprises.getEnterprises().get(i).getEnterpriseName());

                TextView txt2 = (TextView) rl.getChildAt(2);
                txt2.setText(enterprises.getEnterprises().get(i).getEnterpriseType().getEnterpriseTypeName());

                TextView txt3 = (TextView) rl.getChildAt(3);
                txt3.setText(enterprises.getEnterprises().get(i).getCountry());

                LinearLayout relativeLayout = (LinearLayout) mInflater.inflate(R.layout.rtl_enterprise, parent);
                relativeLayout.setId(i);
那里的一切都还可以,但我有个问题,我需要创建一个

onClick侦听器

为什么?? 我会调用一个方法,该方法需要有关已单击的卡的一些信息,然后重定向到一个新活动,该活动包含有关他单击的卡的信息


但是对于这些相对布局,我需要一个onclick监听器,我假设在创建卡时需要初始化它,因为它创建+50张卡,但是我不知道如何设置每个监听器。

为什么这样创建它

使用RecyclerView的更好解决方案

在适配器中,您可以侦听项目单击。在单击任何项目时编写一次代码。您将知道单击项目的位置

请参见本教程


在for循环中使用addOnClickListener,正如Momen所说,有更好的容器可以用于这种东西,从ListView/RecyclerView开始。但是如果必须这样做,请注意onClick是onClick(视图v),您可以对所有项目使用相同的函数,因为调用它时您将收到单击的项目。创建组件时,只需调用setOnClickListener(与单击处理程序相同)。说清楚一点,我也不推荐它。我刚开始用java/android开发,所以我所做的是我认为正确的,因为这太具体了,我没有找到“正确”的方法,谢谢:D