안드로이드 개발 질문/답변
(글 수 45,052)
<pension pension_home=http://eldorado/ pension_img="/data/eldorado.gif" sido="충남" gugun="태안군" tel="041-674-8010" hp="010-8506-8131" homepage="goeldorado.co.kr" searchword="충남, 안면도, 태안, 마검포, 꽃지해수욕장, 팜카밀레, 천리포수목원, 백사장항, 안면암, 자연휴양림, 토끼바위, 엘도라도, 커플, 예쁜룸, 바닷가, 레포츠, 실시간, 낚시, 수영장, 이벤트, 인터넷, 서해바다" map_x="126.2906369" map_y="36.6116887" pension_name="펜션 엘도라도" hit="41079">펜션 엘도라도</pension>
파싱해서 데이터를 가져왔습니다.
테이블뷰에 뿌리는데 이미지, 펜션이름, 지역, 나오고요
오른쪽에 이미지버튼 나오게했는데
버튼 클릭하면 해당하는 홈페이지로 이동하게 했습니다.
그런데 이게 마지막에 가져온 홈페이지 주소로만 이동을 하더라구요 ㅠ
어떤 이미지버튼을 눌러도 같은 페이지로 이동합니다.
어떻게 하는지 몰라서 글남기네요 ㅠㅠ
도와주세요!
public class LocalSearch extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.local);
Intent intent = getIntent();
String local = intent.getExtras().getString("local").toString();
String sido = intent.getExtras().getString("sido").toString();
String local = intent.getExtras().getString("local").toString();
String sido = intent.getExtras().getString("sido").toString();
ListView list = (ListView)findViewById(android.R.id.list);
ArrayList<Pension> m_pension = new ArrayList<Pension>();
PensionAdapter m_adapter = new PensionAdapter(this, R.layout.row, m_pension);
list.setAdapter(m_adapter);
ArrayList<Pension> m_pension = new ArrayList<Pension>();
PensionAdapter m_adapter = new PensionAdapter(this, R.layout.row, m_pension);
list.setAdapter(m_adapter);
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser parser = factory.newPullParser();
XmlPullParser parser = factory.newPullParser();
parser.setInput(text.openStream(), "UTF-8");
String uri = "";
while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
switch(parser.getEventType()){
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.TEXT:
break;
case XmlPullParser.START_TAG:
if(parser.getName().equals("pension")){
if(parser.getAttributeValue(2).equals(sido)){
if(parser.getAttributeValue(3).contains(local)){
uri = "http://kr/" + parser.getAttributeValue(1);
Pension p1 = new Pension(parser.getAttributeValue(0), uri, parser.getAttributeValue(10),
switch(parser.getEventType()){
case XmlPullParser.START_DOCUMENT:
break;
case XmlPullParser.END_DOCUMENT:
break;
case XmlPullParser.TEXT:
break;
case XmlPullParser.START_TAG:
if(parser.getName().equals("pension")){
if(parser.getAttributeValue(2).equals(sido)){
if(parser.getAttributeValue(3).contains(local)){
uri = "http://kr/" + parser.getAttributeValue(1);
Pension p1 = new Pension(parser.getAttributeValue(0), uri, parser.getAttributeValue(10),
parser.getAttributeValue(2), parser.getAttributeValue(3));
m_pension.add(p1);
}
}
}
break;
}
parser.next();
}
}
catch(Throwable t) {
Toast.makeText(this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
m_pension.add(p1);
}
}
}
break;
}
parser.next();
}
}
catch(Throwable t) {
Toast.makeText(this, "실패: " + t.toString(), Toast.LENGTH_LONG).show();
}
}
private class PensionAdapter extends ArrayAdapter<Pension> {
private ArrayList<Pension> items;
URL imageURL;
URL homeURL;
URL homeURL;
public PensionAdapter(Context context, int textViewResourceId, ArrayList<Pension> items) {
super(context, textViewResourceId, items);
this.items = items;
}
super(context, textViewResourceId, items);
this.items = items;
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.row, null);
}
Pension p = items.get(position);
if(p != null) {
ImageButton p_home = (ImageButton)v.findViewById(R.id.home);
ImageView p_image = (ImageView) v.findViewById(R.id.img);
TextView p_name = (TextView) v.findViewById(R.id.name);
TextView p_sido = (TextView) v.findViewById(R.id.sido);
TextView p_gugun = (TextView) v.findViewById(R.id.gugun);
ImageButton p_home = (ImageButton)v.findViewById(R.id.home);
ImageView p_image = (ImageView) v.findViewById(R.id.img);
TextView p_name = (TextView) v.findViewById(R.id.name);
TextView p_sido = (TextView) v.findViewById(R.id.sido);
TextView p_gugun = (TextView) v.findViewById(R.id.gugun);
if(p_home != null){
try {
homeURL = new URL("p.getHome();
p_home.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
String url = homeURL.toString();
Intent intent = new Intent(LocalSearch.this, Webview.class);
intent.putExtra("url", url);
try {
homeURL = new URL("p.getHome();
p_home.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
String url = homeURL.toString();
Intent intent = new Intent(LocalSearch.this, Webview.class);
intent.putExtra("url", url);
startActivity(intent);
}
}
});
} catch (Throwable e) {
} catch (Throwable e) {
}
}
if(p_image != null){
try{
imageURL = new URL("p.getImage();
HttpURLConnection conn = (HttpURLConnection) imageURL.openConnection();
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream(), 10240);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
p_image.setImageBitmap(bm);
} catch(Throwable t) {
if(p_image != null){
try{
imageURL = new URL("p.getImage();
HttpURLConnection conn = (HttpURLConnection) imageURL.openConnection();
BufferedInputStream bis = new BufferedInputStream(conn.getInputStream(), 10240);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
p_image.setImageBitmap(bm);
} catch(Throwable t) {
}
}
}
if(p_name != null) {
p_name.setText(p.getName());
}
if(p_sido != null) {
p_sido.setText(p.getSido());
}
if(p_gugun != null) {
p_gugun.setText(p.getGugun());
}
}
return v;
}
}
class Pension {
private String Home;
private String Image;
private String Name;
private String Sido;
private String Gugun;
p_name.setText(p.getName());
}
if(p_sido != null) {
p_sido.setText(p.getSido());
}
if(p_gugun != null) {
p_gugun.setText(p.getGugun());
}
}
return v;
}
}
class Pension {
private String Home;
private String Image;
private String Name;
private String Sido;
private String Gugun;
public Pension(String _Home, String _Image, String _Name, String _Sido, String _Gugun){
this.Home = _Home;
this.Image = _Image;
this.Name = _Name;
this.Sido = _Sido;
this.Gugun = _Gugun;
}
public String getHome() {
return Home;
}
public String getImage() {
return Image;
}
public String getName() {
return Name;
}
public String getSido() {
return Sido;
}
public String getGugun() {
return Gugun;
}
}
}
}
}




Pension p = items.get(position) --> 이 부분이 가능한가요? 이해가 안가긴 합니다만..
좀 이해가 안가는게 Pension이라는 bean을 만든 것인데 Pension이라는 bean에 위치값만 간단하게 대입되는 것도 그렇고...
대략...
p_home.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
String url = items.get(positiion).getHome().toString();
Intent i = new Intent(LocalSearch.this, Webview.class);
i.putExtra("url", url);
startActivity(i);
}
});
으로 해보시면 될 듯 합니다.