android - Multiple html files in fragment using webView via ListView -


i created webview application listview in fragment. followed link: opening multiple local html files using webview via listview when click on item should redirect me detail of webview item. trying implement in fragment 1 item successful while other items not point me webview detail should be. i've been looking solution still no luck. here code

mainactivity:

package com.listviewfragment.withsublist;  import android.support.v4.app.fragmenttransaction; import android.support.v7.app.appcompatactivity; import android.os.bundle;  public class mainactivity extends appcompatactivity {  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     main_listfragment main_listfragment = new main_listfragment();     fragmenttransaction fragmenttransaction =  getsupportfragmentmanager().begintransaction();       fragmenttransaction.replace(r.id.content, main_listfragment);       fragmenttransaction.commit();     }  } 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.constraintlayout   xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.listviewfragment.withsublist.mainactivity">  <framelayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="match_parent"></framelayout>  </android.support.constraint.constraintlayout> 

main_listfragment.java

package com.listviewfragment.withsublist; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmenttransaction; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.adapterview; import android.widget.arrayadapter; import android.widget.listview;   /**  * simple {@link fragment} subclass.  */ public class main_listfragment extends fragment { listview listview;   public main_listfragment() {     // required empty public constructor }   @override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {     view rootview = inflater.inflate(r.layout.fragment_main_list, container, false);     // inflate layout fragment     listview = (listview) rootview.findviewbyid(r.id.list);     string[] values = new string[] {             "detail webview 1",             "detail webview 2",             "detail webview 3",     };      arrayadapter<string> adapter = new arrayadapter<>(getactivity(), android.r.layout.simple_list_item_1, android.r.id.text1, values);      // assign adapter listview     listview.setadapter(adapter);      // listview item click listener     listview.setonitemclicklistener(new adapterview.onitemclicklistener() {          @override         public void onitemclick(adapterview<?> parent, view view,                                 int position, long id) {             // todo auto-generated method stub              // listview clicked item value             listview.getitematposition(position);             if (position == 0) {                 detail_webview_mainfragment dlm = new detail_webview_mainfragment ();                 getfragmentmanager().begintransaction().replace(r.id.content, dlm).addtobackstack(null).commit();             }             else if (position == 1) {                 detail_webview_mainfragment dlm = new detail_webview_mainfragment ();                 getfragmentmanager().begintransaction().replace(r.id.content, dlm).addtobackstack(null).commit();             }             else if (position == 2) {                 detail_webview_mainfragment dlm = new detail_webview_mainfragment ();;                 getfragmentmanager().begintransaction().replace(r.id.content, dlm).addtobackstack(null).commit();             }         }      });     return rootview;  }  } 

fragment_main_list.xml

<framelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.listviewfragment.withsublist.main_listfragment">       <listview        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="match_parent">      </listview>  </framelayout> 

detail_webview_mainfragment.java

package com.listviewfragment.withsublist; import android.os.bundle; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.webkit.websettings; import android.webkit.webview; import android.webkit.webviewclient;   /** * simple {@link fragment} subclass. */ public class detail_webview_mainfragment extends fragment { webview view;  public detail_webview_mainfragment() {     // required empty public constructor }   @override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {     //getarguments().getstring("key");     // inflate layout fragment     view rootview = inflater.inflate(r.layout.fragment_detail_webview_main, container, false);      view = (webview) rootview.findviewbyid(r.id.webview);     // enable javascript     websettings websettings = view.getsettings();     websettings.setjavascriptenabled(true);     view.setwebviewclient(new webviewclient());      int pos = getactivity().getintent().getintextra("key", 0);     if (pos == 0) {         view.loadurl("file:///android_asset/html/webview1.html");     } else if (pos == 1) {         view.loadurl("file:///android_asset/html/webview2.html");     } else if (pos == 2) {         view.loadurl("file:///android_asset/html/webview3.html");     }     return rootview;     } } 

fragment_detail_webview_main

<framelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.listviewfragment.withsublist.detail_webview_mainfragment">  <!-- todo: update blank fragment layout --> <webview android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent"></webview>  </framelayout> 

you using same detail fragment position 0,1,2. this:

detail_webview_mainfragment dlm = new detail_webview_mainfragment (); bundle args = new bundle(); args.putint("key", pos); dlm.setarguments(args); 

and instead of

int pos = getactivity().getintent().getintextra("key", 0); 

in detail fragment :

int pos=0; if (getarguments() != null) {         pos= getarguments().getint("key");              } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -