2015-07-05 2 views
0

Все работает нормально только картинка не отображаетсяКак тянуть изображение на GridView позиции

BaseAdapter:

public Bitmap getItem(int position) { 
    return bitmaps.get(position); 
} 

активность:

Intent i = new Intent(getApplicationContext(), SpcifiesImage.class); 
        // passing array index 
        i.putExtra("id", position);`enter code here` 
        startActivity(i); 

это деятельность, я хочу что изображение будет там:

Intent intent = new Intent(getApplicationContext(), SpcifiesImage.class); 

    Intent i = getIntent(); 

    // Selected image id 
    int position = i.getExtras().getInt("id"); 
    CustomGrid imageAdapter = new CustomGrid(mContext); 

    ImageView imageView = (ImageView) findViewById(R.id.imageView3); 
    imageView.setImageBitmap(imageAdapter.bitmaps.get(position)); 


    // passing array index 
    intent.putExtra("mas", massage); 

    startActivity(intent); 

CustomGrid:

  Context mContext; 
private Bitmap btimaprecieve; 
List<ParseObject> ParseObjects; 
ArrayList<Bitmap> bitmaps; 
ParseQuery<ParseObject> query; 
ProgressDialog progressDialog; 
int size; 


public CustomGrid(Context c, ArrayList<Bitmap> bitmaps) { 
    mContext = c; 
    this.bitmaps = bitmaps; 

} 

public CustomGrid(Context mContext) { 
} 


//---returns the number of images--- 
public int getCount() { 
    return bitmaps.size(); 
} 

//---returns the ID of an item--- 
public Bitmap getItem(int position) { 
    return bitmaps.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View gridView; 

    if (convertView == null) { 

     gridView = new View(mContext); 

     // get layout from mobile.xml 
     gridView = inflater.inflate(R.layout.mobile, null); 

     // set value into textview 
     // TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label); 
     // textView.setText(mobileValues[position]); 

     // set image based on selected text 
     ImageView imageView = (ImageView) gridView 
       .findViewById(R.id.grid_item_image); 
     // imageView.setLayoutParams(new GridView.LayoutParams(70, 70)); 
     // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setImageBitmap(bitmaps.get(position)); 


    } else { 
     gridView = (View) convertView; 
    } 
    return gridView; 

LogCat:

процесса: com.example.tepper.myapplication, ПИД: 16637 java.lang.NullPointerException: Попытка вызвать виртуальный метод «булево android.graphics.Bitmap. сжимать (android.graphics.Bitmap $ CompressFormat, INT, java.io.OutputStream)»на объектную ссылку нулевой

+0

Можете ли вы показать код, заполняющий изображения адаптера, пожалуйста? – MightySeal

+0

какой код ...? – avichai80

+0

Я предполагаю, что @MightySeal ссылался на код CustomGrid. Позиция, на которую вы ссылаетесь, является ли это позицией изображения на GridView, которую выбрал пользователь? Или вы занимаете позицию по-другому? Наверное, я не совсем понял ваш вопрос/проблему. –

ответ

0

Ok, из кода вы в курсе, у вас есть проблемы с этой частью:

на CustomG избавиться:

public CustomGrid(Context mContext) { 
} 

Конструктор пуст, который означает, что когда вы делаете это:

CustomGrid imageAdapter = new CustomGrid(mContext); 

ImageView imageView = (ImageView) findViewById(R.id.imageView3); 
imageView.setImageBitmap(imageAdapter.bitmaps.get(position)); 

bitmaps массив не будет инициализирован. Вы должны либо сделать массив Bitmap статическим или хранить его в месте, которое можно получить доступ из другой деятельности, только для целей тестирования это сделать:

  • Измените следующую строку на CustomGrid:

    ArrayList<Bitmap> bitmaps; к public static ArrayList<Bitmap> bitmaps;

  • Тогда на следующий доступ к деятельности это следующим образом:

    imageView.setImageBitmap(CustomGrid.bitmaps.get(position));

+0

да, я сделал это раньше и его еще не работает. – avichai80

+0

и этот код не является кодом, потому что нет смысла снова запускать отдел – avichai80

+0

Прошу прощения, я до сих пор не знаю что вы просите .. попробуйте опубликовать свой код класса CustomGrid и код вашего XML-макета, возможно, это прояснит вашу проблему. –

Смежные вопросы