2017-09-29 4 views
2

Ich habe viele HTML-Dateien in Assets Ordner und ich verwende jQuery Mobile sie in Android mobiles.I zu zeigen, wissen, dass es Es ist kaum schwer, dies ohne meinen Code zu beantworten, aber bis jetzt habe ich keinen brauchbaren Code gefunden, um es im Android Studio zu überprüfen, deshalb brauche ich es von euch. Beispiel, ich habe HTML-Dateien in Vermögenswerte Ordner, wie kann ich es in einfachen Text konvertieren und teilen Sie es über WhatsApp? Es gibt Code unten, unter Beispielbilder, wie ich weiß Html.fromhtml kann dies tun und und RegEx zu HTML-Tags entfernen.toString().replaceAll("\<.*?>", "")); Aber ich weiß nicht, wie man es realisiert.Wie HTML-Datei in Text konvertieren und sie über WhatsApp, Facebook, und et

weiß, dass ich nur so etwas wie dieser Code tun kann

public class MainActivity extends AppCompatActivity { 

WebView webView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    webView = (WebView) findViewById(R.id.webView); 
    WebSettings webSettings = webView.getSettings(); 
    webView.getSettings().setBuiltInZoomControls(true); 
    webView.getSettings().setSupportZoom(true); 
    webView.getSettings().setDisplayZoomControls(false); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("file:///android_asset/about.html"); 
    webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); 
    webView.setWebViewClient(new WebViewClient()); 
    webView.setWebChromeClient(new WebChromeClient()); 
} 

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

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 

    int id = item.getItemId(); 

    switch (item.getItemId()) 
    { 
     case R.id.sharecontent: 
      Share(); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
    } 

    public void Share() { 
    this.Share(Html.fromHtml(this.web.getContent()).toString().replaceAll("\\<.*?>", "")); 
    } 

    public String getContent() { 
    return this.m.ReadFile(GetUrl().substring(GetUrl().indexOf("asset/") + 6)); 
    } 
} 

Example of HTML file in emulator

(30.09.2017) Ich habe es noch nicht erhalten arbeiten, weil ich den Zugriff auf HTML-Dateien in Unterordner müssen . Ich lese das, aber immer noch nicht verstanden - List of files in assets folder and its subfolders

Muhammad Tufail Antwort funktioniert nur für 1 HTML.

+0

, was genau Ihre Frage ist –

+0

Beispiel, ich habe hTML-Datei in Assets Ordner, wie kann ich es in reinen Text umwandeln und über WhatsApp teilen? Es gibt Code oben, wie ich weiß, Html.fromhtml kann dies tun und und regex .toString(). ReplaceAll ("\\ <.*?>", "")); Aber ich weiß nicht, wie man es realisiert. – alizulfuqar

Antwort

1

Zuerst müssen Sie die Datei aus dem Ordner Assets in Android lesen hier ist das Beispiel, wie HTML-Datei von Assets Ordner zu lesen und den Text aus dem HTML-Datei

InputStream input; 
String output; 
    try { 
     StringBuilder buf=new StringBuilder(); 
     InputStream htmlfile=getAssets().open("yourfile.html"); 
     BufferedReader in= 
       new BufferedReader(new InputStreamReader(htmlfile, "UTF-8")); 
     String str; 

     while ((str=in.readLine()) != null) { 
      buf.append(str); 
     } 
     output=Html.fromHtml(buf.toString()).toString().trim(); 

     in.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

bekommen Wenn Sie die teilen möchten html Text, dann können Sie den Text mit android Absicht teilen

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("text/plain"); 
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Sharing html Text"); 
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, output); 
startActivity(Intent.createChooser(sharingIntent, "Select")); 
+0

Tut mir leid, aber es funktioniert nicht. es muss InputStream sein, wie ich weiß, und ich kann zu Assets-Ordner erreichen, kann nicht erreichen, Text innerhalb von HTML – alizulfuqar

+0

Ich aktualisiere den Code bitte überprüfen Sie es. –

+0

Sehr gut, es funktioniert, gute Codierung, danke, aber .... Aber, wie ich schon sagte, ich habe viele ** HTML-Dateien ** in ** Assets-Ordner ** und diese ** HTML-Dateien ** in separaten ** Ordner **. Beispiel, ** index.html ** innerhalb ** index ** -Ordner, ** about.html ** innerhalb ** about ** -Ordner. Ich muss alle diese HTML-Dateien nur mit 1 Codierung erreichen. – alizulfuqar

Verwandte Themen