2010-07-18 86 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