单击侦听器以动态添加imageview

时间:2011-06-16 06:20:36

标签: android

我的应用中有一个活动显示rss提要,并且每个RSS提要旁边都有箭头图像。

我是Android新手任何帮助将不胜感激。

我将解释我正在做什么来展示rss新闻...

我有一个单独的rss的单独的虚拟xml布局..我已经为它设置了箭头图像的id(将导航到下一个活动)iv_arrow_img 我正在迭代我得到的新闻提要和每个新闻提要我一次又一次地添加虚拟视图...我的问题是我将如何区分不同的图像箭头的ID ...因为现在所有人都具有相同的ID。 ..我将如何设置onclick听众?

..... @devA 采取你的建议我写了代码          Iterator itr = data.iterator();             int i = 0;             while(itr.hasNext()){             NewsPostDTO newspostdto = itr.next();

        view = inflater.inflate(R.layout.rl_news_item, null);
        lnContentView.addView(view, LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);


        ivArrowfwd = (ImageView) view.findViewById(R.id.iv_arrowfwd);

        tvNewsHeading.setText(newspostdto.getFeaturedDesc());
        tvNewsContent.setText(newspostdto.getDate() + " - " + newspostdto.getTitle());
        ivArrowfwd.setId(id);
        ivArrowfwd.setTag(newspostdto);
        ivArrowfwd.setOnTouchListener(new OnTouchListener(){

            @Override
            public boolean onTouch(View arg0, MotionEvent arg1) {

                               System.out.println("sdfsdf" +(ImageView) view.findViewById(id).getTag());

                return false;
            }
        });
        id++;
    }

但我不是每个新闻都有不同的标签,认为它们是独一无二的。你能告诉我我在哪里做错了吗?

2 个答案:

答案 0 :(得分:1)

有不同的方法可以实现这一点,因为它不清楚您使用的是什么布局以及如何将视图附加到布局,

一种方法是,当您动态填充视图时,在视图上使用名为setTag(“uniqueid”)的方法,

唯一ID可以是url或其他对视图唯一的东西,并将它们存储在数组中。一旦填充了视图,迭代数组,使用findViewWithTag(“uniqueid”)并设置监听器。

答案 1 :(得分:0)

然后根本没有问题..

`image.setOnTouchListener(new OnTouchListener(){

@Override
            public boolean onTouch(View arg0, MotionEvent arg1) {
//start your activity..
})

`使用当前引用来映像..并且在其中使用startActivity ..不需要具有diff id's ..