public class LocalSearch extends ListActivity {

 public ArrayList<Pension> m_pension;

 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.local);
  
  final ListView list = (ListView)findViewById(android.R.id.list);
  
  final ArrayList<Pension> m_pension = new ArrayList<Pension>();
  final PensionAdapter m_adapter = new PensionAdapter(LocalSearch.this, R.layout.row, m_pension);
  
  list.setAdapter(m_adapter);

  BackThread t = new BackThread();
  Thread thread = new Thread(t);
  thread.start();
 }
 
 class BackThread implements Runnable {
  public void run() {
   
   Intent intent = getIntent();
   String local = intent.getExtras().getString("local").toString();
   String sido = intent.getExtras().getString("sido").toString();

   try
   {   
    URL text = new URL("http://kr/parser.php");

    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    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), parser.getAttributeValue(2), parser.getAttributeValue(3));
         m_pension.add(p1);        
        } 
       }
      }
      break;
     }
     parser.next();
    }
   }
   catch(Throwable t) {

   }
  }
 }

 private class PensionAdapter extends ArrayAdapter<Pension>  {

  private ArrayList<Pension> items;

  URL imageURL;

  public PensionAdapter(Context backThread, int textViewResourceId, ArrayList<Pension> items) {
   super(backThread, textViewResourceId, items);
   this.items = items;   
  }


  public View getView(final 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);
    if(p_home != null){
     try {
      p_home.setOnClickListener(new Button.OnClickListener(){
       public void onClick(View v) {

        String url = items.get(position).getHome().toString();
        Intent intent = new Intent(LocalSearch.this, Webview.class);
        intent.putExtra("url", url);

        startActivity(intent);
        finish();
       }

      });
     } 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_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;


  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;
  }
 }

 

파싱이 너무 느려서 스레드로 하라는 얘길 듣고 해보려고 하는데

공부한지 얼마 안되서 잘 모릅니다. ㅠ

이런식으로 하는게 맞나요?

그런데 저렇게 하면 레이아웃은 나오는데 리스트뷰가 안나오네요;;

어디선가 데이터를 못가져오는거 같은데.. ㅠ

어렵군요 ㅠㅠ 도와주세요