2012-06-24 49 views
-1

我有兩個int數組圖像,我已經在網格視圖中實現它。我想在點擊網格上的項目時從另一個陣列設置圖像?我嘗試通過創建imageview的全局對象,但它的力量正在接近。如何在gridview中實現imageview

package com.sachin.majum; 
import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 
import java.util.Random; 
import android.R.integer; 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
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; 
import android.widget.AdapterView.OnItemClickListener; 
public class select extends Activity { 
ImageView im = new ImageView(getApplicationContext()); 
int blank [] =     {R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launche r,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher}; 
int image []={R.drawable.dc,R.drawable.dd,R.drawable.kkr,R.drawable.mi,R.drawable.rcb,R.drawable.rr,R.drawable.dc,R.drawable.dd,R.drawable.kkr,R.drawable.mi,R.drawable.rcb,R.drawable.rr}; 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.select); 
Random random = new Random(); 
List intlist = new ArrayList(); 
for(int i=0;i<image.length;i++) 
{ 
    intlist.add(image[i]); 
} 
Collections.shuffle(intlist,random); 
for(int i=0;i<intlist.size();i++) 
{ 
    image[i]=(Integer) intlist.get(i); 
} 
GridView grid = (GridView)findViewById(R.id.gv); 
grid.setAdapter(new MyAdapter()); 
grid.setOnItemClickListener(new OnItemClickListener() { 
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
im.setImageResource(image[position]); 
    } 
}); 

} 

class MyAdapter extends BaseAdapter{ 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return blank.length; 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    im.setImageResource(blank[position]); 
    im.setLayoutParams(new GridView.LayoutParams(60,60)); 
    return im; 
} 

} 
} 

`

+0

如果你有所有的圖像正確的開始爲什麼你使用空白圖像數組,甚至是多次也是相同的圖像? –

回答

0

更改onClickListener代碼。

grid.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     ImageView iV = (ImageView)v; 
     iV.setImageResource(image[position]); 
    } 
}); 

並刪除此聲明,您不需要它。

ImageView im = new ImageView(getApplicationContext()); 
2

您需要創建爲GridView的每一個單元的ImageView的。我已經適應你的getView,以反映這一變化:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 
     convertView = new ImageView(select.this); 
    } 

    ((ImageView)convertView).setImageResource(blank[position]); 
    ((ImageView)convertView).setLayoutParams(new GridView.LayoutParams(60,60)); 
    return convertView; 
} 
+0

其獲得的力量關閉,如果我在getView方法中進行更改。 – sachin

+0

你可以在這裏通過錯誤嗎? – Ljdawson

+0

以及如何更改gridView中的圖像。 onItemClick – sachin

相關問題