Android获取水平滚动视图内的视图位置

时间:2015-09-07 09:42:10

标签: android

我想获取图像视图在图像上的位置单击侦听器,使用for循环动态添加到水平滚动视图中。该位置想要在另一个活动中设置View寻呼机当前项目。

我正在尝试这种方法:

   private void prepareTextViewsForHistory(){
      HorizontalScrollView parent=(HorizontalScrollView)findViewById(R.id.horizontal_scroll_view_id_01);
      LinearLayout layout=new LinearLayout(this);
      layout.setOrientation(LinearLayout.HORIZONTAL);
      parent.addView(layout);
      for (int i=DEFAULT_HISTORY_MAX - 1; i >= 0; i--)
 {
        final ImageView imageView=new ImageView (this);
         imageView.setTag(i);
         imageView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v)
                        {
                            Log.e("imageView ", " Click ");
                            int numpos = imageView.getId();
                            Log.e("numpos "," = "+ numpos);

                            String item_ActivityId =  all_Post.getStrActivityId();

                            Toast.makeText(getBaseContext(), String.valueOf(v.getId()), Toast.LENGTH_SHORT).show();
                            Log.e(" Image ID = "," = "+String.valueOf(v.getId()));
                            Intent intent = new Intent(getContext(),SimpleImageActivity.class);
                            //intent.putExtras(extras);
                            intent.putExtra("activity_id",item_ActivityId);
                            startActivity(intent);
                        }
                    });
        layout.addView(textView);
      }
    }

每个观点位置都是-1。

先谢谢

这是我的代码

jcalendar-1.2.2

2 个答案:

答案 0 :(得分:2)

您可以通过在创建视图时设置标记来执行此操作

在您创建视图的循环中,只需添加以下行:

 yourView.setTag("your incremental variable");
 yourView.setOnClickListener(this);

并且在onclick(View v)中你可以通过

获得该职位
v.getTag().toString()

答案 1 :(得分:0)

您正在使用imageView.setTag(i);设置代码,在v.getTag().toString()方法中使用onClick(View v )