私は次のように試していますが、iv.setImageBitmap(bm)でNull Pointer Exceptionを取得しています。 グリッドビューとLayout Inflaterを使用してテキストでイメージを設定しようとしました。プロセスもデバッグしましたが、解決策を得ることができませんでした。次のコードを確認してください。あなたのアダプタでのURLConnectionを行うべきではありませんグリッドビューでそれ以下のテキストでイメージを設定するにはどうすればいいですか?
public class CategoryAdapter extends BaseAdapter {
private Context mContext;
public static final int ACTIVITY_CREATE = 10;
int id=-1;
public CategoryAdapter(Context c) {
mContext = c;
}
public int getCount() {
return CategorylogoActivity.logoarray.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
Bitmap bm=null;
ImageView iv = null ;
TextView tv=null;
View v;
if(convertView==null){
@SuppressWarnings("static-access")
LayoutInflater li = (LayoutInflater)mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
v = li.inflate(R.layout.category_icon, null);
tv= (TextView)v.findViewById(R.id.icon_text);
iv = (ImageView)v.findViewById(R.id.icon_image);
}
else
{
v = convertView;
}
try {
URL aURL = new URL(CategorylogoActivity.logoarray[position]);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
// Buffered is always good for a performance plus.
BufferedInputStream bis = new BufferedInputStream(is);
// Decode url-data to a bitmap.
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
iv.setImageBitmap(bm);
tv.setText(CategorylogoActivity.namearray[0]);
return v;
私の質問に素早く正確に答えてくれてありがとう。ありがとうallot.I TSはあなたのコードで正しく働いています。 –