3

我正在尝试创建类似布局的 pinterest。我找到了一种方法来实现这一点:Android 异构 gridview like pinterest?

但是问题是:我想在单击每张图片后查看项目详细信息。但是当我使用 LinearLayout.addView() 添加所有 ImageViews 时,我不确定如何让它可点击?

无论如何都可以单击视图上的每个项目?

4

4 回答 4

1

您可以通过将标签信息添加到可以在单击时显示的图像视图中轻松地做到这一点。

添加您的图像视图如下所示:

ImageView iv = new ImageView(context);
iv.setOnClickListener(your_listener);
iv.setTag("Item information");
linearLayout.addView(iv);

然后在你的点击监听器中:

public void onClick(View v) {
    if(v instanceof ImageView) {
        String info = (String)v.getTag();
        /* Show information here */
    }
}
于 2012-09-21T14:55:04.130 回答
1

用这个 :

view.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // ADD your action here

            }
        });

或者让你的类实现OnClickListner接口并覆盖onClick()方法

于 2012-09-21T14:57:01.353 回答
1

利用:

imageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //do magic
        }
    });

并在您的布局文件中将 ImageView 标记为可点击:

<ImageView
...
android:clickable="true">
...
</ImageView>
于 2012-09-21T15:32:01.793 回答
0

在您链接的代码的基础上,您可以在创建每个图像视图时为其添加一个侦听器:

linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);

for(int i=0;i<n;i++)
{
   ImageView iv = new ImageView(this);
   iv.setImageResource(R.id.icon);
   iv.setOnClickListener(new OnClickListener() {
       public void onClick(View v) {
           //Your click code
       }
   }

   int j = count % 3;  <---- 
   if(j==0)
       linear1.addView(iv);
   else if(j==1)
       linear2.addView(iv);
   else
       linear3.addView(iv); 
}
于 2012-09-21T14:55:21.763 回答