2014-05-22 5 views
0

Я внедрил Universal Image Loader в свое приложение с макетом gridview.Обновление listView/обновляющий адаптер

Когда я нажимаю кнопку, я хочу добавить новое изображениеUrl в Array of Urls.

Мне удалось это сделать, но когда я обновляю свой imageList, я до сих пор вижу только изображения, которые были в массиве на StartUp.

Как обновить gridView с помощью нового массива?

EDIT

MainActivity

public class MainActivity extends Activity { 

Button btnView; 
private ListView listView; 
Socket client; 
PrintWriter printwriter; 
EditText textField; 
Button button; 
String messsage; 
ObjectInputStream input; 
ObjectOutputStream output; 
int counter = 1; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 

    StrictMode.setThreadPolicy(policy); 
    setContentView(R.layout.ac_home); 

    //startRunning(); 



} 

public void onImageGridClick(View view) { 
    Intent intent = new Intent(this, ViewImages.class); 
    startActivity(intent); 
} 


public void onTakeImageClick(View view) throws IOException { 
    ViewImages.addImg(); 
} 

} 

А вот класс ViewImage

public class ViewImages extends Activity { 

private ListView listView; 

ImageLoader loader; 
    private static ImageListAdapter adapter; 
    private static List<String> mItems; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mItems = new ArrayList<String>(); 
    mItems.add("http://195.178.234.228/images/image8.jpg"); 
    mItems.add("http://195.178.234.228/images/image7.jpg"); 


    adapter = new ImageListAdapter(this, mItems); 

    // 


    listView = (ListView)findViewById(R.id.listView); 
    listView.setAdapter(adapter); 
} 

public static void addImg(){ 
    mItems.add("http://195.178.234.228/images/image10.jpg"); 
    adapter.notifyDataSetChanged(); 

} 




} 

ImageListAdapter

public class ImageListAdapter extends BaseAdapter { 

List<String> list; 


int size; 

private Context context; 
private ImageLoader imageLoader; 

public ImageListAdapter(Context context,List<String> list) { 
    this.context = context; 
    this.list = list; 
    imageLoader = ImageLoader.getInstance(); 
    imageLoader.clearDiscCache(); 
    imageLoader.clearMemoryCache(); 
} 

@Override 
public int getCount() { 
    return list.size(); 
} 


@Override 
public Object getItem(int arg0) { 
    return null; 
} 



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



@Override 
public View getView(int position, View convertView, ViewGroup viewGroup) { 
    View v = convertView; 

    ViewHolder vh = null; 
    if (v == null) { 
     v = View.inflate(context, R.layout.list_item, null); 

     vh = new ViewHolder(); 
     vh.imageView = (ImageView) v.findViewById(R.id.imageView); 

     v.setTag(vh); 
    } 
    else { 
     vh = (ViewHolder)v.getTag(); 
    } 

    DisplayImageOptions options = new DisplayImageOptions.Builder() 
    .cacheOnDisc() 
    .build(); 

    imageLoader.displayImage(list.get(position), vh.imageView, options); 

    return v; 
} 

private class ViewHolder { 
    ImageView imageView; 
} 

} 

ответ

1

Ваш метод onTakeImageClick() не имеет никакого эффекта, если вам нужно добавить URL-адрес изображения в свою деятельность ViewImages, один из способов - пройти через метод intent.putExtra().

Intent intent = new Intent(this, ViewImages.class); 
intent.putExtra("ImageName" , "ImageUrl"); 
startActivity(intent); 

вы можете получить этот дополнительный счет: -

getIntent().getStringExtra("ImageName"); 

Другое вещь в вашем imageViewAdapter, метод GetItem() возвращает нуль вместо возврата

list.get(arg0); 

Этот метод вернет вид в позиции arg0.

+0

Спасибо, я проверю это! – theOGloc

+0

Хм, я могу только добавить одно изображение в список. – theOGloc

0

Если вы отправляете ImageUrl в намерениях, вы можете также отправить массив ImageUrl, так что вы сможете добавить больше изображения

Intent intent = new Intent(this, ViewImages.class); 
    intent.putExtra("ImageName" , new String[]{"ImageUrl","ImageUrl","ImageUrl"}); 
    startActivity(intent); 
Смежные вопросы