Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android是否有使用addView进行线性布局的ClickListener?_Android_Listview_Android Linearlayout_Pinterest - Fatal编程技术网

Android是否有使用addView进行线性布局的ClickListener?

Android是否有使用addView进行线性布局的ClickListener?,android,listview,android-linearlayout,pinterest,Android,Listview,Android Linearlayout,Pinterest,我正在尝试创建类似pinterest的布局。我找到了实现这一目标的方法: 但问题是:我想在单击每张图片后查看项目详细信息。但是,由于我使用LinearLayout.addView()添加所有的ImageView,我不确定如何使其可单击 是否仍然可以单击视图上的每个项目?通过将标签信息添加到图像视图(单击时可以显示)中,您可以非常轻松地完成此操作 添加图像视图的方式如下所示: ImageView iv = new ImageView(context); iv.setOnClickListener(

我正在尝试创建类似pinterest的布局。我找到了实现这一目标的方法:

但问题是:我想在单击每张图片后查看项目详细信息。但是,由于我使用LinearLayout.addView()添加所有的ImageView,我不确定如何使其可单击


是否仍然可以单击视图上的每个项目?

通过将标签信息添加到图像视图(单击时可以显示)中,您可以非常轻松地完成此操作

添加图像视图的方式如下所示:

ImageView iv = new ImageView(context);
iv.setOnClickListener(your_listener);
iv.setTag("Item information");
linearLayout.addView(iv);
然后在您的click listener中:

public void onClick(View v) {
    if(v instanceof ImageView) {
        String info = (String)v.getTag();
        /* Show information here */
    }
}

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

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); 
}
linear1=(LinearLayout)findViewById(R.id.linear1);
linear2=(LinearLayout)findViewById(R.id.linear2);
linear3=(LinearLayout)findViewById(R.id.linear3);
对于(int i=0;i使用以下公式:

view.setOnClickListener(new OnClickListener() {

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

            }
        });
或者让您的类实现
OnClickListner
接口并重写
onClick()
方法使用:

imageView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //do magic
        }
    });
在布局文件中,将ImageView标记为可单击:

<ImageView
...
android:clickable="true">
...
</ImageView>

...

谢谢大家!这很有效。我忘了在自定义视图上设置clickable。