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