동일한 활동 oncreate ()에서 웹 뷰 및 ListView를 수행하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2235813

문제

public class hello extends Activity, ListActivity {
    WebView main_webv;  
    ListView main_listv;
    public static final int REFRESHLIST_ID = Menu.FIRST;

    private Handler mHandler = new Handler();
    private static final String SPLASH = "http://";
    private static final String LIST_NAMES = "http://";

    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);
        main_webv = (WebView) findViewById(R.id.mainwebview);
        main_webv.setWebViewClient(new HelloWebViewClient());
        main_webv.getSettings().setJavaScriptEnabled(true);
        main_webv.getSettings().setSupportZoom(false);
        main_webv.addJavascriptInterface(new HelloJavascriptInterface(),"hello");
        main_webv.setWebChromeClient(new HelloWebChromeClient());
        main_webv.loadUrl(SPLASH);  
        main_webv.setVisibility( 4 );

        setContentView(R.layout.main_list);         
        main_listv = (ListView) findViewById(R.id.mainlistview);    

    }

보시다시피, 먼저 WebView를 만듭니다. 그런 다음 즉시 사라지고 싶습니다. 그런 다음 ListView가 등장하기를 원합니다. 그러나 문제는 ListActivity를하지 않으면 ListView를 할 수 없다는 것입니다 ... 그러나 나는 활동을 할 수 없습니다 ...

도움이 되었습니까?

해결책

다른 (아마도 관련) 스레드에 게시 한 코드를 살펴볼 수 있습니다. 여기. 동일한 코드를 복사 할 것입니다. 이것은 내 레이아웃 XML (weblister.xml)입니다.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ListView
    android:id="@+id/list_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
    <WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

</FrameLayout>

이제 저는 View Heirarchy에서 ListView와 WebView를 모두 갖는 활동을 만듭니다. 그러나 그중 하나만 볼 수 있습니다.

public class WebAct extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.weblister);

            //setup listview
        ListView listView = (ListView) findViewById(R.id.list_view);
        listView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1,
                new String[]{"One","Two"}){

        });
            // setup web view
        WebView webView = (WebView) findViewById(R.id.webview);

        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setSupportZoom(false);

        webView.loadUrl("http://www.google.com");

            // set visibility    
        listView.setVisibility(View.INVISIBLE);
        webView.setVisibility(View.VISIBLE);
    }

}

다른 팁

당신은 가장 확실히 할 수 있습니다 ListView a ListActivity. 당신은 또한 a를 사용할 수 있습니다 WebView a ListActivity.

//main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout android:id="@+id/lister"
             android:layout_width="match_parent"
             android:layout_height="300dp"
             android:layout_alignParentTop="true">
<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>

<RelativeLayout android:id="@+id/webviewer"
         android:layout_width="match_parent"
         android:layout_height="300dp"
         android:layout_below="@+id/lister">    
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</RelativeLayout>

// Java 파일

package list.View;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.ListView;


public class ListViewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

        //setup listview
    ListView listView = (ListView) findViewById(R.id.list_view);
    listView.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1,
            new String[]{"One","Two"}){

    });
        // setup web view
    WebView webView = (WebView) findViewById(R.id.webview);

    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setSupportZoom(false);

    //webview.loadUrl("www.google.com");

    webView.loadDataWithBaseURL("file:///android_asset/", "<img src=\"banner5.png\" height=\"98%\" width=\"100%\"/>", "text/html", "utf-8", null);



}

}

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top