TITLE : Android Naver Open API App
Date : 2010/08/03
Writen by Dayyoung
Description :
This is Source that make the App find chipest product by Naver Open API
Download Link :
Reference Site: api.naver.com
자료를 제공하는 서비스업체들이 내부 API를 공개하는 것이 최신 트랜드이다.
물론, 웹서비스를 HttpClient로 긁어서 사용하는 것도 대안이 있을 수 있겠지만,
Open API를 통해서 가져온다면 훨씬 깨끗하고 양질의 XML 자료를 제공받을 수 있다.
물론, 한정된 횟수 내에서 ㅡ 본 예제에 쓰인 API Key는 하루에 10000번의 제한이 있다.
( key를 돌려쓴다면 무제한이겠지만 )
1. MainActivity는 단순히 입력받은 스트링 값을 Bundle객체에 담아서 다음 객체로 보낸다.
Intent intent = new Intent (MainActivity.this,PriceListActivity.class);
Bundle myData = new Bundle();
myData.putString(“key”, textView.getText().toString());
intent.putExtras(myData);
startActivity(intent);
2. 전달받은 String 검색어와 Naver Open Key값을 이용하여, NaverParser 클래스에 던지고,
결과값은 ArrayList<XmlData>으로 받아서 ListView에 뿌려진다.
naverPaser = new NaverParser(key1);
//네이버 인증 키
Intent intent = getIntent();
Bundle myBundle = intent.getExtras();
Data = myBundle.getString(“key”);
//검색값 가져오기
getNewList(Data,count);
//처음 5개 화면
3. NaverParser 클래스는 네이버 Open API를 사용하기 위해 만든 클래스이고,
정보를 가져오기 위해서는 네이버 Open API싸이트에서 미리 반환값에 대한 정보를 확인해야 한다.
네이버 쇼핑 Open API 문서 일부 : http://dev.naver.com/openapi/apis/data/shop
// XML 결과물 파싱하기
try {
URL text = new URL(
”http://openapi.naver.com/search?key=”+key1+”&query=”
+ m_searchTxt + “&display=” + count
+ “&start=1&target=shop&sort=asc”);
다음과 같이 URL 에 키값과 Query값으로 조합되서 던지면, 결과값이 API 문서 형식으로 반환된다.
4. NaverParser를 이용해 반환된 ArrayList<XmlData>는 CustomAdapter가 적용되서 ListView에 뿌려진다.
한번에 모든 결과값을 불러올 수 없으므로, 더보기 기능을 구현하여 리스트뷰 마지막줄에 추가한다.
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
int Last = adapter.getCount();
//adapter 전체 갯수 카운터
Log.i(“NET”, Last + “Parsing…”);
if ((Last – 1) == arg2) {
count = count + 5;
getNewList(Data,count);
//더보기를 클릭했을 때, 카운터를 5 증가시키고 GetNewList()
} //즉, 마지막 뷰 (아답터의 갯수 -1) 를 클릭했을 때 Conunt를 증가시키고 , GetNewList를 호출한다.
5. 마지막 줄이 아닌경우 선택된 뷰의 정보를 StringArray값을 Bundle객체에 담아서,
DetailActivity를 호출 하게된다.
else
{
String[] StringArrayData = StringArrayData(arg2);
Intent intent = new Intent (PriceListActivity.this,DetailActivity.class);
Bundle myData = new Bundle();
myData.putStringArray(“key”,StringArrayData);
intent.putExtras(myData);
startActivity(intent);
}
* 자료를 가져가실 때에는 출처를 밝혀주시고, 본 소스에 포함된 API키는 언제든지 삭제될 수 있습니다.
이 저작물은 크리에이티브 커먼즈 저작자표시 3.0 Unported 라이선스에 따라 이용할 수 있습니다.
'Daily Sample' 카테고리의 다른 글
[Day19] Android Iphone Tab UI 2 소스 (0) | 2011.11.30 |
---|---|
[Day18] Android Iphone Tab UI 1 소스 (0) | 2011.11.30 |
[Day16] Android SD카드 MediaPlayer App만들기 소스 (0) | 2011.11.30 |
[Day15] Android XmlPullParser AndroDay App만들기2 소스 (0) | 2011.11.30 |
[Day14] Android XmlPullParser AndroDay App만들기1 소스 (0) | 2011.11.30 |