选定设备上的Android Gallery网格不工作
我已经在这里找到了一个代码,但是现在我还有一个问题。 正如您在main activity中看到的,gridview中显示的图像有一个onItemClick事件,但问题是单击图片时没有发生任何事情 主要活动选定设备上的Android Gallery网格不工作,android,android-gridview,android-gallery,android-bitmap,Android,Android Gridview,Android Gallery,Android Bitmap,我已经在这里找到了一个代码,但是现在我还有一个问题。 正如您在main activity中看到的,gridview中显示的图像有一个onItemClick事件,但问题是单击图片时没有发生任何事情 主要活动 package com.javatechig.gridview; import java.io.File; import java.util.ArrayList; import android.app.Activity; import android.content.res.TypedAr
package com.javatechig.gridview;
import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;
/**
*
* @author javatechig {@link http://javatechig.com}
*
*/
public class MainActivity extends Activity {
private GridView gridView;
private GridViewAdapter customGridAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_delta);
gridView = (GridView) findViewById(R.id.gridView);
customGridAdapter = new GridViewAdapter(this, R.layout.row_grid, getData());
gridView.setColumnWidth(400);
gridView.setPadding(8, 8, 8, 8);
gridView.setAdapter(customGridAdapter);
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(MainActivity.this, position + "#Selected",
Toast.LENGTH_SHORT).show();
Log.w("click", "click");
}
});
}
private ArrayList<ImageItem> getData() {
final ArrayList imageItems = new ArrayList();
String stringpath = Environment.getExternalStorageDirectory().toString()+"/Pictures/Hello Camera";
File path=new File(stringpath);
File[] imageFiles = path.listFiles();
for (int i = 0; i < imageFiles.length; i++) {
// Bitmap bitmap = BitmapFactory.decodeFile(imageFiles[i].getAbsolutePath());
// imageItems.add(new ImageItem(bitmap, "Image#" + i));
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile(imageFiles[i].getAbsolutePath(),options);
imageItems.add(new ImageItem(bitmap, "Image#" + i));
}
return imageItems;}
}
**
- XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:padding="5dp"
android:clickable="true"
android:background="@drawable/grid_color_selector"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/image"
android:layout_width="200dp"
android:layout_height="200dp"
android:scaleType="center" >
</ImageView>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox"
/>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:textSize="12sp"
>
</TextView>
</LinearLayout>
活动\u主\u三角洲
<RelativeLayout 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:background="#f0f0f0"
tools:context=".MainActivity"
android:descendantFocusability="blocksDescendants" >
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:clickable="true"
android:columnWidth="100dp"
android:drawSelectorOnTop="true"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" >
</GridView>
</RelativeLayout>
我怎样才能修好它
谢谢 请从行网格线性布局中删除android:clickable属性。 这是在GridView获取事件之前捕获事件。 因此,只需将所有onClick和onLongClick绑定到GridView的onItemClick和onItemLongClick侦听器。
祝你好运。我在这里或给定链接中都看不到任何onItemClick EventListener。@Burn是的,很抱歉我忘了添加该部分。我编辑了这个问题。主要的源代码在那里,添加了适配器和xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="vertical"
android:padding="5dp"
android:clickable="true"
android:background="@drawable/grid_color_selector"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/image"
android:layout_width="200dp"
android:layout_height="200dp"
android:scaleType="center" >
</ImageView>
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="CheckBox"
/>
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:textSize="12sp"
>
</TextView>
</LinearLayout>
<RelativeLayout 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:background="#f0f0f0"
tools:context=".MainActivity"
android:descendantFocusability="blocksDescendants" >
<GridView
android:id="@+id/gridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:clickable="true"
android:columnWidth="100dp"
android:drawSelectorOnTop="true"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" >
</GridView>
</RelativeLayout>