Java 从android.com运行hellogridview时出现问题
我之前曾就此提出过一个问题,现在我没有任何错误,但当我尝试在模拟android设备上运行我的应用程序时,它出现了一个错误,即 抱歉,应用程序Hello网格视图 (process com.HelloGridView)具有 他突然停了下来。请试一试 再说一遍 以下是文件树,这些文件稍后将遵循:Java 从android.com运行hellogridview时出现问题,java,android,android-emulator,Java,Android,Android Emulator,我之前曾就此提出过一个问题,现在我没有任何错误,但当我尝试在模拟android设备上运行我的应用程序时,它出现了一个错误,即 抱歉,应用程序Hello网格视图 (process com.HelloGridView)具有 他突然停了下来。请试一试 再说一遍 以下是文件树,这些文件稍后将遵循: HelloGridView src com.HelloGridView HelloGridView.java ImageAdapter.java gen Android 2.2 a
HelloGridView
src
com.HelloGridView
HelloGridView.java
ImageAdapter.java
gen
Android 2.2
assets
res
drawable( with all the pics)
HelloGridView.java
package com.HelloGridView;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.Toast;
public class HelloGridView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
}
这是我的main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
如果从ImageAdapter类中删除这些行,一切都将正常工作
public ImageAdapter(HelloGridView c) {
// TODO Auto-generated constructor stub
}
正在调用此构造函数,但未设置上下文。我不是Java专家,但我认为它会被调用,因为它更具体
您已经有了这个构造函数,它将处理上下文的设置
public ImageAdapter(Context c) {
mContext = c;
}
另一个解决方案是将您现有的构造函数更改为该构造函数,它也可以工作
public ImageAdapter(HelloGridView c) {
mContext = c;
}
问题在于教程中的这一行 “将图像文件保存到项目的res/drawable/目录中。” 在您的项目中,您没有此文件夹,而是具有/drawable hdpi(ldpi…等) 所以要解决这个问题,只需在res目录下创建一个新文件夹,并将其称为“drawable”,然后将图像导入该文件夹 或 在AndroidManifest.xml中,将行“@drawable/icon”更新到您的文件夹中
public ImageAdapter(HelloGridView c) {
mContext = c;
}