Pergunta

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);    

    }

Como você pode ver, eu primeiro criar uma webview. Então, eu quero que desaparecem imediatamente. Então, eu quero o Listview para subir. Mas o problema é, eu não posso fazer Listview se eu não fizer ListActivity ... mas então eu não posso fazer Atividade ...

Foi útil?

Solução

Você pode dar uma olhada no código eu postei em sua outra thread (possivelmente relacionado): aqui . Vou copiar mesmo código abaixo: Este é o meu XML layout (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>

Agora, eu criar uma atividade que terá tanto ListView e WebView na sua opinião hierarquia, mas apenas um deles seria visível:

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);
    }

}

Outras dicas

Você pode certamente fazer um ListView sem ListActivity. Você também pode usar um WebView com um 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>

// arquivo 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);



}

}

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top