package org.booksearch;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class BookSearch extends ListActivity {
private ArrayList<Book> bookList = new ArrayList<Book>();
private ArrayList<String> temp = new ArrayList<String>();
private ArrayAdapter<String> bookAdapter;
private static final String source = new String("/sdcard/sample.xml");
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ListView listView = (ListView)findViewById(R.id.myListView);
try {
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
MyHandler handler = new MyHandler();
xr.setContentHandler(handler);
xr.parse(source);
bookList = handler.getBookList();
for(int i = 0; i < bookList.size();i++){
temp.add(bookList.get(i).getTitle());
Log.d("mytag", temp.get(i));
}
} catch (Throwable t) {
t.printStackTrace();
}
bookAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, temp);
listView.setAdapter(bookAdapter);
// setContentView(R.layout.main);
}
}
03-30 08:21:44.944: WARN/System.err(7133): java.io.IOException: Couldn't open /sdcard/sample.xml
03-30 08:21:44.954: WARN/System.err(7133): at org.apache.harmony.xml.ExpatParser.openUrl(ExpatParser.java:744)
03-30 08:21:44.954: WARN/System.err(7133): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:300)
03-30 08:21:44.963: WARN/System.err(7133): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:333)
03-30 08:21:44.963: WARN/System.err(7133): at org.booksearch.BookSearch.onCreate(BookSearch.java:41)
03-30 08:21:44.963: WARN/System.err(7133): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-30 08:21:44.963: WARN/System.err(7133): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
03-30 08:21:44.973: WARN/System.err(7133): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
03-30 08:21:44.973: WARN/System.err(7133): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
03-30 08:21:44.973: WARN/System.err(7133): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
03-30 08:21:44.973: WARN/System.err(7133): at android.os.Handler.dispatchMessage(Handler.java:99)
03-30 08:21:44.983: WARN/System.err(7133): at android.os.Looper.loop(Looper.java:123)
03-30 08:21:44.983: WARN/System.err(7133): at android.app.ActivityThread.main(ActivityThread.java:4363)
03-30 08:21:44.993: WARN/System.err(7133): at java.lang.reflect.Method.invokeNative(Native Method)
03-30 08:21:44.993: WARN/System.err(7133): at java.lang.reflect.Method.invoke(Method.java:521)
03-30 08:21:44.993: WARN/System.err(7133): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
03-30 08:21:44.993: WARN/System.err(7133): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
03-30 08:21:45.004: WARN/System.err(7133): at dalvik.system.NativeStart.main(Native Method)
03-30 08:21:45.004: WARN/System.err(7133): Caused by: java.net.MalformedURLException: Protocol not found: /sdcard/sample.xml
03-30 08:21:45.014: WARN/System.err(7133): at java.net.URL.<init>(URL.java:275)
03-30 08:21:45.014: WARN/System.err(7133): at java.net.URL.<init>(URL.java:159)
03-30 08:21:45.024: WARN/System.err(7133): at org.apache.harmony.xml.ExpatParser.openUrl(ExpatParser.java:737)
03-30 08:21:45.024: WARN/System.err(7133): ... 16 more
어디가 잘못됐는지 알고 싶습니다~
이부분 의 주소를
file:///sdcard/sample.xml 로 바꿔서 해보세요..