[英]How do I load local HTML files using a ListView in Android?
我一直在研究Android中的ListView,其中包含許多項目。 我希望每個列表項都有一個相應的HTML文件,單擊該列表項后,該文件就會加載到WebView中。 每個列表項都會有一個對應的HTML文件。 HTML存儲在設備上。
為了給我正在使用的ListView提供一個概念,我在http://javatechig.com/android/android-listview-tutorial/上修改了本教程。
我認為我的問題是我已經習慣了iOS開發人員,並且很難理解我的想法,而不去思考如何在iOS中解決它!
任何輸入表示贊賞,
謝謝。
在iOS中執行此操作的一種方法是將情節提要模板與列表視圖和詳細信息視圖一起使用。
您可以通過兩個不同的活動在Android中執行相同的操作。 您已經在列表中進行了一項活動。 您應該僅使用WebView
添加第二個活動(以及圍繞它的任何導航)。
要進行連接,您可以在列表視圖中添加一個OnItemClickListener
以激發具有適當活動動作的意圖。
// logic to get the html file goes here
Intent i = new Intent(context, MyWebViewActivity.class);
i.putExtra("fileToShow", theFile);
context.startActivity(i);
在MyWebViewActivity
您可以執行以下操作:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_with_webview);
final Intent intent = getIntent();
if (null != intent) {
if (intent.hasExtra("fileToShow")) {
WebView myWebView = (WebView) findViewById(R.id.my_web_view);
myWebView.loadUrl("file:///" + intent.getExtras().getString("fileToShow");
}
}
}
您可能需要為此添加更多代碼和布局以適合您的特定需求-但這種通用方法應該可以解決。
您可以將setOnItemClickListener用於listview並將html傳遞給loadUrl,例如...
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> element, View arg1, int pos, long arg3){
// TODO Auto-generated method stub
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(htmladdress);
}
});
為詳細信息視圖創建一個新活動,其中包含webview
然后,在您的列表視圖(主視圖)中,onItemClickListener回調獲取文件的uri,將其作為額外的意圖進行捆綁,並開始新的活動
活動接收到意圖,從附加內容中提取uri,並通過webview加載
本地uri就像這樣 "file:///" + context.getExternalFilesDir(null) + "/..."
因此,您可能想建立一個數據庫來存儲uri,並在列表視圖中使用游標適配器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.