public class parsing extends Activity {

 
 static int number;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.englandtok);

 

  lv = (ListView) findViewById(R.id.listView); // ListView를 보여주는 부분
  sa = new SimpleAdapter(this, list_board, R.layout.row_board1,
    new String[] { "subject", "rowid", "reg_date", "power", "good",
      "bob", "content", "hit", "img" }, new int[] {
      R.id.board_subject, R.id.board_date, R.id.board_writer,
      R.id.imageView1, R.id.textView3, R.id.textView2,
      R.id.textView1, R.id.imageView3, R.id.imageView1 });
  lv.setAdapter(sa);

  contents = new ArrayList<String>();

 
  lv.setAdapter(sa);
  
  lv.setOnScrollListener(new OnScrollListener() {

   public void onScrollStateChanged(AbsListView view, int scrollState) {
    // TODO Auto-generated method stub

   }

  
   public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    // TODO Auto-generated method stub
    // Log.v(TAG, "onScroll");
     Log.v(TAG, "firstVisibleItem = " + firstVisibleItem);
     Log.v(TAG, "visibleItemCount = " + visibleItemCount);
     Log.v(TAG, "totalItemCount = " + totalItemCount);
    int count = totalItemCount - visibleItemCount;
    
    int total = firstVisibleItem + visibleItemCount;

    if (firstVisibleItem >= count && totalItemCount != 0 && mLockListView == false) {

     if(total == totalItemCount){
     
     rssParse();  //파싱다시시작
      //addItems();
     
    }
    }

   }
  });
 
  // //


  rssParse();
 }


 public void rssParse() {
  
  mLockListView = true;

  
  number=number+1;
  Log.i("aaaaa", ""+number);


  final Handler mHandler = new Handler();
  new Thread() {
   public void run() throws IndexOutOfBoundsException {

    list_board.clear();
    // status.setText("파싱 시작함"); //
    
    
    // 데이터 가지고 오기 시작
    try {
     //HttpPostData();
     URL text = new URL("http://126.0.0.1/db/xml/england.php?page=number"); // 주소확인
     // 바래요!

     XmlPullParserFactory parserCreator = XmlPullParserFactory
       .newInstance();
     XmlPullParser parser = parserCreator.newPullParser();

     parser.setInput(text.openStream(), null);

     int parserEvent = parser.getEventType();
     String tag = "";

     boolean inTitle = false; // 제목여부판단
     boolean inItem = false; // 아이템변경 판단
     boolean inWriter = false; // 작성자 판단
     boolean inDate = false; // 작성일
     boolean inContent = false; // 내용
     boolean inpage = false;
     boolean inbob = false;
     boolean inhit = false;

     int count = 0;

     contents.clear(); // 가지고왔던 콘텐츠를 모두 삭제함
     String str;

     do {

      Log.i("test", "" + count);

      switch (parserEvent) {
      case XmlPullParser.TEXT:
       tag = parser.getName();
       // 제목
       if (inItem && inTitle) {
        str = parser.getText();
        map.put("subject", str);
       }
       // 작성일
       if (inItem && inDate) {
        str = parser.getText();
        map.put("reg_date", str);
       }
       // 작성자
       if (inItem && inWriter) {
        str = parser.getText();
        map.put("rowid", str);
       }
       if (inItem && inpage) {
        str = parser.getText();
        map.put("good", str);
       }
       if (inItem && inbob) {
        str = parser.getText();
        map.put("bob", str);
        if (str.length() >= 0) {
         map.put("img", R.drawable.e);
        }
       }
       if (inItem && inhit) {
        str = parser.getText();
        if (str.length() == 1) {
         map.put("hit", R.drawable.wow);
        } else if (str.length() == 2) {
         map.put("hit", R.drawable.no);
        }
       }
       // 내용
       if (inItem && inContent) {
        str = parser.getText();
        if (str.length() > 0) {
         map.put("content", str);
         map.put("power", R.drawable.star1);
         // contents.add(str);
        } else if (str.length() < 3) {
         map.put("content", str);
         map.put("power", R.drawable.star);
        }
       }
       break;

      case XmlPullParser.END_TAG:
       tag = parser.getName();
       // 태그가 끝나면...
       if (tag.compareTo("data") == 0) {
        inItem = false;
        list_board.add(map);
       }
       if (tag.compareTo("subject") == 0) {
        inTitle = false;
       }
       if (tag.compareTo("rowid") == 0) {
        inWriter = false;
       }
       if (tag.compareTo("reg_date") == 0) {
        inDate = false;
       }
       if (tag.compareTo("content") == 0) {
        inContent = false;
       }
       if (tag.compareTo("page") == 0) {
        inpage = false;
       }
       if (tag.compareTo("bob") == 0) {
        inbob = false;
       }
       if (tag.compareTo("hit") == 0) {
        inhit = false;
       }
       break;

      case XmlPullParser.START_TAG:
       tag = parser.getName();
       Log.i("test", "tag START " + tag);
       // 시작하는 태그
       if (tag.compareTo("data") == 0) {
        inItem = true;
        map = new HashMap<String, Object>();
       }
       //
       if (tag.compareTo("subject") == 0) {
        inTitle = true;
       }
       //
       if (tag.compareTo("rowid") == 0) {
        inWriter = true;
       }
       //
       if (tag.compareTo("reg_date") == 0) {
        inDate = true;
       }
       //
       if (tag.compareTo("content") == 0) {
        inContent = true;
       }
       if (tag.compareTo("page") == 0) {
        inpage = true;
       }
       if (tag.compareTo("bob") == 0) {
        inbob = true;
       }
       if (tag.compareTo("hit") == 0) {
        inhit = true;
       }
       break;
      }

      // status.setText("파싱중: " + String.valueOf(count));
      parserEvent = parser.next();
      count++;

      System.out.println("읽었을걸!");

     } while (parserEvent != XmlPullParser.END_DOCUMENT);
     Log.d("englandtok", "list_board.size : " + list_board.size()); //20

    } catch (Exception e) {
     Log.i("AAA", "AAAAAAAAAAAAAA" + e);
    }
 


    
    mHandler.post(new Runnable() {
     public void run() {
      pd.cancel();

      sa.notifyDataSetChanged();
      mLockListView = false;
     }
    });

    // Log.i("test", e.toString());

    // String str = "data : \n";
    // str += "subject : " + map.get("subject")+"\n";
    // str += "rowid : " + map.get("rowid") +"\n";
    // str += "reg_date : " + map.get("reg_date")+"\n";
    // str += "content : " + map.get("content");
    //
    // status.setText(str);
    // pd.dismiss();

     }
  }.start();
  
 }


}

 

제가 소스를 이렇게짯습니다..

url도 rssparse()를 부를때마다 +1값을 주어서 주소값 갱신도 되는데..

if문서 rssparse()를 다시 파싱해올라면은 IndexOutOfBoundsException에러가나면서..파싱이안되네요..ㅠ

주소값에 따라서 다시 파싱을 해올려고하는데..답변좀 부탁드립니다..ㅠㅠ