2010-07-18 89 views
3

我试图进入android开发,我正在浏览教程,但我真的坚持在HelloGridView教程,我被苹果开发人员包围,所以没有任何人有任何Android的经验问!Gridview教程问题

我试图做的HelloGridView教程,我得到17错误,但不能看到我哪里错了?!?我有一种感觉,我错过了一个图书馆或什么?!?

正如我有这么多的错误,我并不能解决我已经采取了截图: http://users.cscs.wmin.ac.uk/~w1128683/help/Untitled.jpeg

问题在哪里在HelloGridView和ImageAdapter类:

HelloGridView类:

package com.example.HelloGridView; 

    import android.app.Activity; 
    import android.os.Bundle; 

    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 OnItemClickListener() { 
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
        Toast.makeText(HelloGridView.this, "" + position, Toast.LENGTH_SHORT).show(); 
       } 
      }); 
     } 

ImageAdapter class:

package com.example.HelloGridView; 

    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_2, R.drawable.sample_3, 
      R.drawable.sample_4, R.drawable.sample_5, 
      R.drawable.sample_6, R.drawable.sample_7, 
      R.drawable.sample_0, R.drawable.sample_1, 
      R.drawable.sample_2, R.drawable.sample_3, 
      R.drawable.sample_4, R.drawable.sample_5, 
      R.drawable.sample_6, R.drawable.sample_7, 
      R.drawable.sample_0, R.drawable.sample_1, 
      R.drawable.sample_2, R.drawable.sample_3, 
      R.drawable.sample_4, R.drawable.sample_5, 
      R.drawable.sample_6, R.drawable.sample_7 
    }; 
    } 

如果有人能告诉我我哪里出错了,或者至少让我指向正确的方向,那将非常感谢!

回答

7

这里是固定设置,下次你需要为每个对象做进口:

你HelloGridView

package com.example.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; 
import android.widget.AdapterView.OnItemClickListener; 

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(getApplicationContext())); 

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

你底座适配器

package com.example.HelloGridView; 

import android.content.Context; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 

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_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 }; 
} 
+0

ahh我以为是这样的。 下一次我会尝试使用普通的场景,而不是按照教程来写信!感谢您的帮助雅各布非常感谢! – Exile 2010-07-18 16:51:54

+5

没问题,就像下面的bevor说的,只要按ctrl + shift + o和eclipse就可以做所有必要的进口 – 2010-07-18 16:53:08

4

Eclipse的只是没有导入所有重要部分。在Eclipse中按下STRG + Shift + O,同时关注您的HelloGridView类。然后创建其他类ImageAdapter,它将工作。

+0

谢谢,我会在将来努力铭记这一点! – Exile 2010-07-18 16:54:20

+0

但是,我发现当自动导入完成时(Juno Service Release 1,Android 4.1.2),Eclipse会自动添加'import android.R;',并且必须删除此错误或在具有R.的行上引发错误。作为参数。 – brannerchinese 2012-12-12 18:21:29

+0

你也可以在android studio中自动导入 - [android studio auto-import](http://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android -工作室) – lostAtSeaJoshua 2016-11-02 20:03:18