كيفية القيام بربنامج WebView و ListView في نفس النشاط oncreate ()؟
-
19-09-2019 - |
سؤال
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. ولكن المشكلة هي، لا أستطيع أن أفعل 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>
الآن، أقوم بإنشاء نشاط سيحتوي على كل من ListView و WebView في عرض Heirarchy عرضه ولكن واحد منهم فقط سيكون مرئيا:
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
بدون ListActivity
. وبعد يمكنك أيضا استخدام WebView
مع 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>
// جافا ملف
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);
}
}
لا تنتمي إلى StackOverflow