Android 在网格视图中显示图片

Android 在网格视图中显示图片,android,Android,我正在尝试使用Gridview显示我放在drawable文件夹中的图片。我犯了一些错误。我的代码和错误如下所示 package com.newapp; import android.R; import android.R.drawable; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.

我正在尝试使用Gridview显示我放在drawable文件夹中的图片。我犯了一些错误。我的代码和错误如下所示

package com.newapp;

import android.R;
import android.R.drawable;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;/*Error here: main cannot be resolved or is not a field*/

import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);/*Error here: main cannot be resolved or is not a field*/

            GridView gridview = (GridView) findViewById(R.id.photogrid);
            gridview.setAdapter(new ImageAdapter(this));

            gridview.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                    Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
                }
            });
        }


    }

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return mThumbIds.length;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {  // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

    // references to our images
    private Integer[] mThumbIds = {

            R.drawable.sample_0, /*Error here: sample_0 cannot be resolved and is not a field*/
            R.drawable.sample_1,/*Error here: sample_1 cannot be resolved and is not a field*/
            R.drawable.sample_2,/*Error here: sample_2 cannot be resolved and is not a field*/ 
           R.drawable.sample_3,/*Error here: sample_3 cannot be resolved and is not a field*/
            R.drawable.sample_4,/*Error here: sample_4 cannot be resolved and is not a field*/ 
           R.drawable.sample_5/*Error here: sample_5 cannot be resolved and is not a field*/,
            R.drawable.sample_6, 
           /*Error here: sample_6 cannot be resolved and is not a field*/
    };
}
package.com.newapp;
导入android.R;
导入android.R.drawable;
导入android.app.Activity;
导入android.content.Context;
导入android.os.Bundle;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.BaseAdapter;
导入android.widget.GridView;
导入android.widget.ImageView/*此处错误:无法解析main或main不是字段*/
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
公共类MainActivity扩展了活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);/*此处错误:无法解析main或main不是字段*/
GridView GridView=(GridView)findViewById(R.id.photogrid);
setAdapter(新的ImageAdapter(this));
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
Toast.makeText(MainActivity.this,“+”位置,Toast.LENGTH_SHORT.show();
}
});
}
}
公共类ImageAdapter扩展了BaseAdapter{
私有上下文;
公共图像适配器(上下文c){
mContext=c;
}
public int getCount(){
返回mThumbIds.length;
}
公共对象getItem(int位置){
返回null;
}
公共长getItemId(int位置){
返回0;
}
//为适配器引用的每个项目创建新的ImageView
公共视图getView(int位置、视图转换视图、视图组父视图){
图像视图图像视图;
如果(convertView==null){//如果它没有被回收,初始化一些属性
imageView=新的imageView(mContext);
setLayoutParams(新的GridView.LayoutParams(85,85));
imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
设置填充(8,8,8,8);
}否则{
imageView=(imageView)convertView;
}
setImageResource(mThumbIds[position]);
返回图像视图;
}
//参考我们的图像
私有整数[]mThumbIds={
R.drawable.sample_0,/*此处出现错误:无法解析sample_0且不是字段*/
R.drawable.sample_1,/*此处出现错误:无法解析sample_1,它不是字段*/
R.drawable.sample_2,/*此处出现错误:sample_2无法解析,并且不是字段*/
R.drawable.sample_3,/*此处出现错误:无法解析sample_3且不是字段*/
R.drawable.sample_4,/*此处出现错误:无法解析sample_4,并且不是字段*/
R.drawable.sample_5/*此处错误:无法解析sample_5,且不是字段*/,
R.drawable.sample_6,
/*此处错误:无法解析示例_6,它不是字段*/
};
}
有人能告诉我是什么导致了这些问题吗?任何帮助都将不胜感激。
提前感谢

这里是您的第一个问题:
导入android.R

不要导入它,因为这是android系统的R包,而不是您自己项目的R文件,因此无法识别main,因为您在android.R包中为main引用的R不存在


如果删除此导入,“main”将被识别,因为您自己的R文件将被引用。同样的规则适用于ImageAdapter。如果您删除导入:
import android.R.drawable
您将避免在本课程中遇到的问题。

谢谢Hakan,这确实帮助我清除了我代码中的大部分错误。然而,当我导入android.widget.AdapterView.OnItemClickListener时,我现在遇到了一个错误,它说main无法解析或不是字段。你能帮我解决这个问题吗?你能试着用“gridview.setOnItemClickListener(新的OnItemClickListener()”替换“gridview.setOnItemClickListener(新的AdapterView.OnItemClickListener()”吗。这会改变吗?另外,只需导入android.widget.AdapterView。不要导入android.widget.AdapterView.OnItemClickListener,因为这不起作用。如果您发现我的答案是解决方案,请您将其标记为解决方案(绿色勾号)。这将非常有帮助,谢谢。