Java 侦听LinearLayout中的ImageView单击
我正在将imageView添加到LinearLayout,由于某些原因,clickListener无法为每个imageView工作,因此我决定尝试将标记添加到imageView,然后将其添加到LinearLayout,然后在单击LinearLayout时,我想检查视图标记以确定按下了哪个imageView。这不起作用,特别是视图标记始终为空。我想能够区分哪个图像被点击 下面获取每个图像的路径的数组列表,这些图像将加载到屏幕上Java 侦听LinearLayout中的ImageView单击,java,android,android-linearlayout,android-imageview,onclicklistener,Java,Android,Android Linearlayout,Android Imageview,Onclicklistener,我正在将imageView添加到LinearLayout,由于某些原因,clickListener无法为每个imageView工作,因此我决定尝试将标记添加到imageView,然后将其添加到LinearLayout,然后在单击LinearLayout时,我想检查视图标记以确定按下了哪个imageView。这不起作用,特别是视图标记始终为空。我想能够区分哪个图像被点击 下面获取每个图像的路径的数组列表,这些图像将加载到屏幕上 private void displayImages(ArrayLis
private void displayImages(ArrayList<String> al) {
final int THUMBSIZE = 640;//was originally 64
linearLayout1.removeAllViews();
for (int i = 0; i < al.size(); i++){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/ImageSpace/"+al.get(i)),
THUMBSIZE, THUMBSIZE);
Drawable d = new BitmapDrawable(getResources(),ThumbImage);
imageView = new ImageView(MainActivity.this);
imageView.setBackground(d);
//linearLayout1.removeAllViews();
//imageView.setTag(i+"");
linearLayout1.addView(imageView);
linearLayout1.getChildAt(i).setTag(i+"");
}
}
XML布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="@drawable/ic_launcher"
android:onClick="test"/>
</LinearLayout>
</ScrollView>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
这似乎不正确,因为它只引用一个imageView,这可能是问题所在。您想为添加到
线性布局中的每个imageView
设置Id
for (int i = 0; i < al.size(); i++){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/ImageSpace/"+al.get(i)),
THUMBSIZE, THUMBSIZE);
Drawable d = new BitmapDrawable(getResources(),ThumbImage);
imageView = new ImageView(MainActivity.this);
imageView.setId(i);
imageView.setBackground(d);
//linearLayout1.removeAllViews();
//imageView.setTag(i+"");
linearLayout1.addView(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
System.out.print("Imageview clikcked Path!::::" +al.get(v1.getId()));
}
}
});
}
for(int i=0;i
当您点击任何ImageView
以通过获取该视图的id来获取特定数据时。试试看。您想为添加到线性布局中的每个图像视图设置Id
for (int i = 0; i < al.size(); i++){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/ImageSpace/"+al.get(i)),
THUMBSIZE, THUMBSIZE);
Drawable d = new BitmapDrawable(getResources(),ThumbImage);
imageView = new ImageView(MainActivity.this);
imageView.setId(i);
imageView.setBackground(d);
//linearLayout1.removeAllViews();
//imageView.setTag(i+"");
linearLayout1.addView(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
System.out.print("Imageview clikcked Path!::::" +al.get(v1.getId()));
}
}
});
}
for(int i=0;i
当您点击任何ImageView
以通过获取该视图的id来获取特定数据时。试试看。您想为添加到线性布局中的每个图像视图设置Id
for (int i = 0; i < al.size(); i++){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/ImageSpace/"+al.get(i)),
THUMBSIZE, THUMBSIZE);
Drawable d = new BitmapDrawable(getResources(),ThumbImage);
imageView = new ImageView(MainActivity.this);
imageView.setId(i);
imageView.setBackground(d);
//linearLayout1.removeAllViews();
//imageView.setTag(i+"");
linearLayout1.addView(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
System.out.print("Imageview clikcked Path!::::" +al.get(v1.getId()));
}
}
});
}
for(int i=0;i
当您点击任何ImageView
以通过获取该视图的id来获取特定数据时。试试看。您想为添加到线性布局中的每个图像视图设置Id
for (int i = 0; i < al.size(); i++){
Bitmap ThumbImage = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(
Environment.getExternalStorageDirectory()+"/ImageSpace/"+al.get(i)),
THUMBSIZE, THUMBSIZE);
Drawable d = new BitmapDrawable(getResources(),ThumbImage);
imageView = new ImageView(MainActivity.this);
imageView.setId(i);
imageView.setBackground(d);
//linearLayout1.removeAllViews();
//imageView.setTag(i+"");
linearLayout1.addView(imageView);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v1) {
System.out.print("Imageview clikcked Path!::::" +al.get(v1.getId()));
}
}
});
}
for(int i=0;i
当您点击任何ImageView
以通过获取该视图的id来获取特定数据时。试试这个。我认为你在做v.getTag()时得到的标签是线性布局本身,而不是图像视图。尝试将OnClickListener添加到循环中的每个imageview,而不是将其设置为linearLayout1。您只需将Uniq id设置为imageview。我在linearlayout中使用UIImageView,并将setOnClickListener添加到图像视图中,效果很好。你能再检查一下你是否可以使用它吗?我相信UIImageView是iOS而不是Android我认为你在做v.getTag()时得到的标签是线性布局本身,而不是imageview。尝试将OnClickListener添加到循环中的每个imageview,而不是将其设置为linearLayout1。您只需将Uniq id设置为imageview。我在linearlayout中使用UIImageView,并将setOnClickListener添加到图像视图中,效果很好。你能再检查一下你是否可以使用它吗?我相信UIImageView是iOS而不是Android我认为你在做v.getTag()时得到的标签是线性布局本身,而不是imageview。尝试将OnClickListener添加到每个im