안드로이드 개발 질문/답변
(글 수 45,052)
여기서 텍스트값은 가져오는데 자꾸만 그림파일을 못불러오네요
어디서 문제가 있는지도 모르겠고...
그림만 안넘어오는데..
진짜 모르겠어요
이것저것해보는데 ..
package com.example.pushing.adapter;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import com.example.pushing.R;
import com.example.pushing.vo.ObjectValue;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class ViewAdapter extends ArrayAdapter<ObjectValue>{
private Context ctx;
private ArrayList<ObjectValue> list;
public ViewAdapter(Context context,
int resource,
ArrayList<ObjectValue> objects) {
super(context, resource, objects);
ctx = context;
list = objects;
}
//이 Adapter를 ListView에 적용 시키면
// ListView에서는 항목 하나 하나를
// 구성하기 위해서 아래의 getView메서드를
// 호출하게 된다.
// 표현할 자원이 12개가 있다면
// ListView가 getView(int)메서드를
// 인자 0부터 11번까지 12번을 호출한다.
@Override
public View getView(int position,
View convertView, ViewGroup parent) {
// view를 넘기기 위해서
//Layout파일을 초기화 시킨다.
//xml파일이 있는 곳을 알려주면 inflater가
//xml의 계층구조대로 객체를 완성시켜 준다.
LayoutInflater linf =
(LayoutInflater)ctx.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
convertView = linf.inflate(
R.layout.list_text,null);
//XML계층은 완성 되었지만 그곳에
//지정될 값은 없다. 값들은
//자바의 객체로 저장되어야 한다.
//그 객체는 현재 객체가 생성될 때 받은
//ArrayList에 있다. 그래서 다음과 같이
//position값으로 접근하여
//표현할 자원을 하나씩 검출한다.
ObjectValue ov = list.get(position);
if(ov != null){
//검출된 ov객체가 가지는 값들을
//convertView의 해당 요소
//(imgtest, txt1, txt2, txt3)에
//값으로 지정해야 한다.
ImageView img =
(ImageView)convertView.findViewById(
R.id.imgView);
TextView t1 =
(TextView)convertView.findViewById(
R.id.txt1);
TextView t2 =
(TextView)convertView.findViewById(
R.id.txt2);
TextView t3 =
(TextView)convertView.findViewById(
R.id.txt3);
// 검출된 id들에게 값을 지정한다.
if(t1 != null)
t1.setText("Title :"+
ov.getD_title());
if(t2 != null)
t2.setText("Price :"+
ov.getD_price());
if(t3 != null)
t3.setText("Publisher :"+
ov.getD_press());
//이미지 표현 작업
try {
URL imgURL =
new URL("ov.getD_image();
BufferedInputStream bis =
new BufferedInputStream(
imgURL.openStream(),2048);
//URL과 연결된 이미지를
//Bitmap으로 생성한다.
Bitmap bm =
BitmapFactory.decodeStream(bis);
bis.close();
//생성된 Bitmap을 ImageView에 지정
img.setImageBitmap(bm);
} catch (Exception e) {
// TODO: handle exception
}
}//if의 끝
return convertView;
}
}