2017-03-14 7 views
-2

Ich habe eine untere Navigationsleiste, die zwischen 5 Fragmenten wechselt. Eine dieser 5 Schaltflächen sollte WebView (Newsfeed) öffnen und etwas HTML anzeigen. Der Code, der die newsfeed.xml nennt, ist dies:Öffnen einer Aktivität aus einem Fragment

public class newsfeedFragment extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.newsfeed,container,false); 
     return v; 
    } 
} 

Jetzt habe ich ein YouTube-Tutorial folgte den HTML von einer Website (Code unten) zu ziehen. Im Lernprogramm befindet sich der Code in seiner eigenen Aktivität und wird nicht innerhalb eines Fragments aufgerufen. Ich bin mir nicht sicher, wie man diese 2 Codeschnipsel kombiniert, um das Webview in meinem Fragment zu erstellen. Hilfe wäre sehr willkommen!

import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


public class MainActivity extends ActionBarActivity { 
    private WebView myWebView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myWebView = (WebView)findViewById(R.id.webView); 
     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     myWebView.loadUrl("http://www.website.com"); 
     myWebView.setWebViewClient(new WebViewClient()); 
    } 

    @Override 
    public void onBackPressed() { 
     if(myWebView.canGoBack()) { 
      myWebView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Der Titel und der Fragetext sind etwas inkonsistent. Möchten Sie eine Aktivität aus einem Fragment starten oder eine Webansicht in einem Fragment öffnen? – Henry

+0

Eigentlich wäre es ideal, das Webview (zweites Code-Snippet) im Fragment zu haben. – sojutyp

Antwort

1

Ich nehme an, Sie möchten die Webansicht in das Fragment laden?

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.newsfeed,container,false) 

WebView webview = (WebView) v.findViewById(R.id.webview); 
webview.loadUrl("http://www.website.com") 
    return v; 
} 

so das Layout aufblasen und anschließend mit Ihrem neuen Layout rufen findViewById und dann könnten Sie tun, was Sie mit Ihrem webview wollen, und es ist in Ihrem Fragmente geladen. Hoffentlich die Lösung für Ihre Frage.

0

können Sie diesen Code verwenden überall im Fragment die Aktivität zu öffnen: -

startActivity(new Intent(getActivity(),ActivitytoOpen.class)); 
0

Nehmen WebView in Ihrem Newsfeed Layout und das gleiche tun in Fragment.

Verwandte Themen