저는 그림이 위에 안나타나네요 ㅡㅡ; 밑에 첨부파일에 올렸습니다.
그림 보시면 알 수 있듯이 엄청나게 간단한 웹브라우저(브라우저라 할것도 없는ㅋㅋ) 어플인데요.. 아직 초보자라서 이렇게 헤매고 있습니다.
엉엉
우선 코드부터 첨부 하겠습니다.
public class BrowserApp extends Activity { /** Called when the activity is first created. */ private Dialog bookMark_dlg = new Dialog(this); private ArrayList<String> list = new ArrayList<String>(); private ListView listView = new ListView(this);
private EditText url; private Button go; private WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //main.xml의 아이디할당 부분을 view할 수 있게 한다. url = (EditText) findViewById(R.id.url_edit); go = (Button) findViewById(R.id.go_button); webview = (WebView) findViewById(R.id.webview); //메소드. //메소드의 parameter -> 클래스 생성자. webview.setWebViewClient( new WebViewClient() { //set한다 웹뷰클라이언트를 화면에 꽉차지 않게. @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } } ); go.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String strUrl = url.getText().toString(); if (!strUrl.startsWith("http://")) //사용자가 http://를 안치는것을 허용. strUrl = "http://" + strUrl; webview.loadUrl(strUrl); } } ); }
@Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub menu.add(0, 0, 0, "backward"); menu.add(0, 1, 1, "forward"); menu.add(0, 2, 2, "bookmarks"); return super.onCreateOptionsMenu(menu); }
@Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub switch(item.getItemId()) { case 0: if (webview.canGoBack()) webview.goBack(); break; case 1: if (webview.canGoForward()) webview.goForward(); break; case 2: bookMark_dlg.setContentView(createCustomView()); bookMark_dlg.show(); break; } return super.onOptionsItemSelected(item); } public View createCustomView() { Cursor mCursor; String[] projection = new String[]{BaseColumns._ID, Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL}; mCursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, projection, null,null,null); mCursor.moveToFirst(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); for(int i=0 ; i < mCursor.getCount() ; i++) { String text; String title = mCursor.getString(1); String url = mCursor.getString(2); text = title + "\n" + url; list.add(text); mCursor.moveToNext(); } listView.setAdapter(adapter); return listView; } }
주석은 그냥 제가 단거니까 신경 쓰지 마시구요^^;;;
다이얼로그와 리스트, 리스트뷰, 어댑터 들을 추가 하기전에는 어플이 에뮬에서 동작을 하긴 했었습니다.
근데 이렇게 코드 짠 이후로는 the applicatiob has stopped unexpecedly 어쩌구 하면서 에뮬에서 아예 돌아가질 않습니다.
Cursor 부분은 교수님이 주신 코드로 아마 에러가 있는 부분이진 않을 것 같구요,,확실한 답변은 위해서
로그캣과 혹시나 해서 main.xml 코드도 붙여요...~
좀 길어도 고수님들에겐 많은 시간이 걸릴 것 같진 않습니다.
답변 부탁드립니다. 선배님들.
main.xml입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<EditText
android:id="@+id/url_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:hint="Enter the URL" />
<Button
android:id="@+id/go_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go"
android:textSize="20px"
android:textStyle="bold" />
</LinearLayout>
<WebView android:id="@+id/webview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0" >
</WebView>
</LinearLayout>
로그캣에러입니다!!!
이것이 중요한 것은 알지만 봐도 모르겠어용 ㅜㅜ
11-17 13:20:10.328: ERROR/AndroidRuntime(294): FATAL EXCEPTION: main
11-17 13:20:10.328: ERROR/AndroidRuntime(294): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ssu.WebBrowser/com.ssu.WebBrowser.Browser}: java.lang.ClassNotFoundException: com.ssu.WebBrowser.Browser in loader dalvik.system.PathClassLoader[/data/app/com.ssu.WebBrowser-2.apk]
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.os.Handler.dispatchMessage(Handler.java:99)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.os.Looper.loop(Looper.java:123)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at java.lang.reflect.Method.invokeNative(Native Method)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at java.lang.reflect.Method.invoke(Method.java:521)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at dalvik.system.NativeStart.main(Native Method)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): Caused by: java.lang.ClassNotFoundException: com.ssu.WebBrowser.Browser in loader dalvik.system.PathClassLoader[/data/app/com.ssu.WebBrowser-2.apk]
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
11-17 13:20:10.328: ERROR/AndroidRuntime(294): ... 11 more
main.xml 에서 <ListView> 는 작성했다가 지금 제 코드에서는 필요하지 않은것 같아 다시 지웠고,
로그캣 오류들은 무슨말 하는지 잘 감이 안오네요....
안녕하세요. 잘부탁드립니다~