안녕하세요.
웹개발자이지만 안드로이드를 해보고픈 개발자입니다 ㅠ
 
거두절미하고... 위젯을 하나 만들어 보려고 하는데요. 
보통 게시판에 게시글이 있듯이  게시물들을 파싱하여 상위 몇개정도만 위젯에 표출 하려고 합니다.
 
여기저기 뒤져가며 해보고는 있는데 위젯까지 생성 되고 xml 파싱하여 데이터까지 가져오기는 합니다.
 
근데 아직 부족한지라 xml을 파싱하는 부분에서 while 문을 돌리고 나면 가장 마지막 게시물만 가져오더군요..
 
소스를 보시면 아시겠지만
 
updateViews.setTextViewText(R.id.x_title,"테스트1");  
 
이 부분은 main.xml 파일에서 계속 업데이트만 하기때문에 while 문에 "테스트1" 대신에 변수를 대입하더라도 
업데이트만 하기때문에 계속 마지막 게시물만 리스트형태로 출력하게 됩니다.
 
main.xml
부분에는 
 
<TextView>내용</TextView>
 
하나만 존재하게 되며 
 
setText 든 뭐든 여러가지 해보았지만 아직은 짧은지식으로는 진도가 안나가네요 ㅠ 
 
결과적으로는 while 문을 돌리며 파싱된 xml 제목이 존재할경우 main.xml부분의 <TextView>내용</TextView> 를 set(?)하여 
추가를 하고 싶습니다.
 
조언좀 부탁드리겠습니다~
 
 
 package org.example.widget;
import android.appwidget.AppWidgetProvider;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.appwidget.AppWidgetManager;
import android.content.Context;
import android.widget.RemoteViews;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import org.example.widget.R;
import org.example.widget.XmlData;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;
import android.util.Log;
import android.app.Activity;
public class Widget extends AppWidgetProvider{
  /*implements OnClickListener*/
 //디버깅을 위한 단순 문자열
 private static final String TAG = "WidgetInfo";
 
 // 날짜 문자열의 형식 정의하기
 //private SimpleDateFormat formatter = new SimpleDateFormat("EEEEEEEEE yyyy년 MMM월 d일");  
 
 @Override 
 public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds){
  // 현재 날짜를 다시 가져와 초기화
  //String now = formatter.format(new Date());
  
  // 위젯의 텍스트 변경하기
  RemoteViews updateViews = new RemoteViews(context.getPackageName(), R.layout.main);
  /*updateViews.setTextViewText(R.id.text1,now);*/
  
  /*요기는 xml 데이터 가져오는 부분 시작*/
  
  String m_sConnectUrl = "http://dongyangex.lhsoft.co.kr/include/xml_data/test.asp";       
        
        XmlData xmlData = null;        
        ArrayList<XmlData> m_xmlData = new ArrayList<XmlData>();
        
        String sTag;
        try{
         
            
         XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
            factory.setNamespaceAware(true); 
            XmlPullParser xpp = factory.newPullParser(); 
                     
            URL u = new URL("m_sConnectUrl);
            
            //InputStream in = u.openConnection().getInputStream();
            InputStream in = u.openStream();
            xpp.setInput(in, "utf-8");            
            
            
            int eventType = xpp.getEventType();
            
            while (eventType != XmlPullParser.END_DOCUMENT) { 
             if(eventType == XmlPullParser.START_DOCUMENT) { 
              //   System.out.println("Start document"); 
             } else if(eventType == XmlPullParser.END_DOCUMENT) { 
              //   System.out.println("End document"); 
             } else if(eventType == XmlPullParser.START_TAG) {
              
              Log.e("START_TAG",xpp.getName());
              sTag = xpp.getName();
              
              if( sTag.equals("title") ){
              // Log.e("title_getText",xpp.nextText());
               xmlData = new XmlData();
               xmlData.d_title = xpp.nextText() ;
               //updateViews.setTextViewText(R.id.x_title,xmlData.d_title);
               System.out.println(xmlData.d_title);
              }
             } else if(eventType == XmlPullParser.END_TAG){
             sTag = xpp.getName();
             if(sTag.equals("item")){
              m_xmlData.add(xmlData);
              //xmlData = null;
             }
             }
             eventType = xpp.next(); 
            }
            String Message = "MESSAGE";
            Log.e(Message,"xml 파싱 완료");            
            //Log.e(Message,m_xmlData.get(0));
            //System.out.println(xmlData.d_title);
            //System.out.println(xmlData.d_title);
            //XmlData xmlDataView = (XmlData) m_xmlData.get(1);
            //System.out.println(xmlDataView);           
            
        }catch(Exception e){
         // 예외처리
         String Message = "MESSAGE";
         Log.e(Message,"xml 파싱 실패 요기는 예외 처리");
        }
        String Message = "MESSAGE";
        Log.e(Message,"요기는 Try & catch 부분 끝난 시점");
        //요기까지 xml 데이터 가져오는 부분 끝
         
        
  updateViews.setTextViewText(R.id.x_title,"테스트1");  
  updateViews.setTextViewText(R.id.x_author,"테스트2"); 
        
         
        
  appWidgetManager.updateAppWidget(appWidgetIds, updateViews); 
  Log.d(TAG,"App 로딩 완료");
  
  // 업데이트 (굳이 사용안해도 된다고 주석되어 있음) 이유를 찾아야지..
  /*super.onUpdate(context, appWidgetManager, appWidgetIds);*/  
 }
}