마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

저장된 데이타 다른클래스에 넘겨주는법과 xml 파싱 질문입니다.

0 추천
public class StuInfo extends Activity {
 
TextView txtname;
TextView txtage;
 
Button btn;
 
StuInfoDTO dto = new StuInfoDTO();
ArrayList<StuInfoDTO> list;
 
Handler handler = new Handler();
 
String result;
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stuinfo);
 
txtname = (TextView) findViewById(R.id.txtname);
txtage = (TextView) findViewById(R.id.txtage);
btn = (Button) findViewById(R.id.btn);
 
// 버튼 이벤트 처리
btn.setOnClickListener(new OnClickListener() {
 
@Override
public void onClick(View v) {
 
final String urlPath = "http://url주소/xml/xmlApp.php?name="
+ txtname + "age=" + txtage;
 
// 네트워크 연동을 위한 작업 스레드 생성
Thread t = new Thread(new Runnable() {
 
@Override
public void run() {
 
InputStream is = requestGet(urlPath);
list = xmlParser(is);
result = streamToString(is);
 
}
});
t.start();
}
});
 
// 인텐트 얻기
try {
Intent intent = getIntent();
 
// 직렬화 객체 얻기(로그인 정보 불러오기)
intent.getSerializableExtra("loginInfo");
 
} catch (Exception e) {
e.getStackTrace();
}
 
}
 
// Get 요청처리 메소드
public InputStream requestGet(String requestUrl) {
try {
// 요청하기
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(requestUrl);
HttpResponse response = client.execute(request);
 
// 응답하기
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
 
return is;
} catch (Exception e) {
e.printStackTrace();
}
return null;
 
}// end requestGet
 
//
public String streamToString(InputStream is) {
StringBuffer buffer = new StringBuffer();
 
try {
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
String str = reader.readLine();
while (str != null) {
buffer.append(str);
str = reader.readLine();
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
return buffer.toString();
 
}// end streamToString
 
public ArrayList<StuInfoDTO> xmlParser(InputStream is) {
 
ArrayList<StuInfoDTO> list = new ArrayList<StuInfoDTO>();
 
try {
// XmlPullParser
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser parser = factory.newPullParser();
parser.setInput(new InputStreamReader(is, "UTF-8"));
 
int eventType = parser.getEventType();
StuInfoDTO dto = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
 
switch (eventType) {
 
case XmlPullParser.START_TAG:
String startTag = parser.getName();
 
if ("name".equals(startTag)) {
if (dto != null)
dto.setName(parser.nextText().replace("<b>", " ")
.replace("</b>", " "));
 
 
 
}
if ("age".equals(startTag)) {
if (dto != null)
dto.setAge(parser.nextText().replace("<b>", " ")
.replace("</b>", " "));
 
}
 
break;
case XmlPullParser.END_TAG:
String endTag = parser.getName();
break;
}
eventType = parser.next();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
 
}
}
 
웹과 호출하여 로그인한 후 그 계정의 주인의 이름과 나이 정보를 불러오는 내용을 하고있습니다. 
현재 임의로 다음과 같이 코딩을 하였는데요. 
로그인 액티비티에서 로그인 정보를 다른페이지에도 넘겨 주는것과 
웹에 있는 이름과 나이 정보를 앱에서도 보여주려면 어떻게 구현을 해야되 지 궁금합니다. 
qwlwwmq (560 포인트) 님이 2014년 2월 4일 질문

1개의 답변

+1 추천
액티비티에서 다른 액티비티로 로그인 정보를 넘겨주려면 intent의 extra를 사용하면 됩니다.

가령 로그인 액티비티에서 B 액티비티로 계정 이름과 나이를 넘겨주려면 로그인 액티비티에서

 

Intent intent = new Intent(LoginActivity.this, B.class);

intent.putExtra("name", userName);

intent.putExtra("age", userAge);

startActivity(intent);

 

이런 식으로 다른 액티비티(페이지)에 데이터를 넘겨줄 수 있습니다.

 

두 번째로 웹에 있는 이름과 나이 정보를 앱에서 보여주는 것은요. 님이 임의로 코딩한 대로 url 호출해서 xmlparser로 파싱한 다음 이름과 나이를 텍스트뷰에 표시하면 됩니다.

 

코딩을 보니 기초부터 공부하셔야 할 것 같네요.
방귀과장 (18,940 포인트) 님이 2014년 2월 4일 답변
Intent intent = new Intent(LoginActivity.this, B.class);
알려주신 부분에서 this다음에 b.class는 어떤것을 의미하는건가요?
B는 데이터를 넘겨주려는 액티비티의 이름입니다. 님의 액티비티 이름으로 바꾸시면 되요.
그럼 데이타를 넘겨줄 페이지에서 알려주신대로
myIntent.putExtra("loginInfo", result);
startActivity(myIntent);
다음과 같이 코딩을 한 후
그 데이타를 받는 페이지는 어떻게 코딩해야되는건가요?
받는 액티비티의 onCreate 메소드에서

public void onCreate(Bundle savedInstanceState) {

.
.
.
//인텐트를 가져옵니다.
Intent intent = getIntent();

//엑스트라 값을 가져옵니다.
String result = intent.getStringExtra("loginInfo");

.
.
.

여기를 참고하세요.

http://blog.naver.com/PostView.nhn?blogId=snazzy79&logNo=70090921345
...