Android 如何获取包含资产链接的列表视图?
我在名为n0.HTML、n1.HTML等的资产中有HTML文件。我想创建一个包含这些文件链接的listview,但我不知道怎么做 我有这样一个原始文件夹的决定。如何将其更改为资产文件Android 如何获取包含资产链接的列表视图?,android,html,listview,assets,Android,Html,Listview,Assets,我在名为n0.HTML、n1.HTML等的资产中有HTML文件。我想创建一个包含这些文件链接的listview,但我不知道怎么做 我有这样一个原始文件夹的决定。如何将其更改为资产文件 公共类ViewActivity扩展活动{ @凌驾 创建时的公共void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.view); Bundle Bundle=getIntent().g
公共类ViewActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
Bundle Bundle=getIntent().getExtras();
String itemname=“n”+bundle.getString(“defStrID”);//获取字符串并形成资源名称
Context Context=getBaseContext();//获取上下文
//按名称从资源中读取文本文件
String text=readRawTextFile(上下文,getResources().getIdentifier(itemname,“raw”,“ru.falcon5f.carguide;”);
WebView wWebView=(WebView)findViewById(R.id.WebView);
字符串摘要=“文本+”;
loadData(摘要,“text/html”,“utf-8”);//将文本上载到webview
}
公共静态字符串readRawTextFile(Context ctx,int resId)//读取文本原始txt文件
{
InputStream InputStream=ctx.getResources().openRawResource(resId);
InputStreamReader inputreader=新的InputStreamReader(inputStream);
BufferedReader buffreader=新的BufferedReader(inputreader);
弦线;
StringBuilder text=新的StringBuilder();
试一试{
而((line=buffreader.readLine())!=null){
text.append(行);
text.append('\n');
}
}
捕获(IOE异常){
返回null;
}
返回text.toString();
}
}
已添加 如果我问的问题太愚蠢,问的太多,我很抱歉,但我想处理我的第一份申请。这对我来说非常重要。因此,它包括两项活动: 查看活动根据您的建议,我已对其进行了更改
公共类ViewActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
Bundle Bundle=getIntent().getExtras();
String htmlFileName=“n”+bundle.getString(“defStrID”);//获取文件名
Context Context=getBaseContext();//获取上下文。您仍然需要它
//按名称从资源中读取文本文件
试一试{
字符串文本=readAssetTextFile(上下文,htmlFileName);
WebView wWebView=(WebView)findViewById(R.id.WebView);
字符串摘要=“文本+”;
loadData(摘要,“text/html”,“utf-8”);//将文本上载到webview
}
捕获(IOE异常){
Log.e(“TAG”,e);//注意,您需要导入android.util.Log
}
}
公共静态字符串readAssetTextFile(上下文ctx,字符串文件名)引发IOException//从资源读取HTML文件
{
InputStream InputStream=ctx.getAssets().open(文件名);
InputStreamReader inputreader=新的InputStreamReader(inputStream);
BufferedReader buffreader=新的BufferedReader(inputreader);
弦线;
StringBuilder text=新的StringBuilder();
试一试{
而((line=buffreader.readLine())!=null){
text.append(行);
text.append('\n');
}
}
捕获(IOE异常){
返回null;
}
返回text.toString();
}
}
在Log.e中(“TAG”,e)代码>,要将“e”的类型更改为“字符串”
我如何解决这个问题?不会有太大的不同。您知道可以访问资产中的文件,如下所示:
InputStream InputStream=ctx.getAssets().open(文件名);
您可以将其替换为行InputStream InputStream=ctx.getResources().openRawResource(resId)代码>。然后您需要传入正确的文件名。使用资产时,不需要使用ID
编辑您的代码段:
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
Bundle Bundle=getIntent().getExtras();
字符串htmlFileName=“n”+bundle.getString(“defStrID”)+“.html”//获取文件名
Context Context=getBaseContext();//获取上下文。您仍然需要它
//按名称从资源中读取文本文件
试一试{
字符串文本=readAssetTextFile(上下文,htmlFileName);
WebView wWebView=(WebView)findViewById(R.id.WebView);
字符串摘要=“文本+”;
loadData(摘要,“text/html”,“utf-8”);//将文本上载到webview
}捕获(IOE异常){
Log.e(“标记”,“异常抛出”,e);//注意,您需要导入android.util.Log
}
}
公共静态字符串readAssetTextFile(上下文ctx,字符串文件名)//从资源中读取HTML文件
{
InputStream InputStream=ctx.getAssets().open(文件名);
.....
非常感谢,但我应该如何更改此设置:Bundle Bundle=getIntent().getExtras();String itemname=“n”+Bundle.getString(“defStrID”);//获取字符串并形成资源名称上下文=getBaseContext();//获取上下文//按名称从资源中读取文本文件字符串text=readRawTextFile(上下文,getResources().getIdentifier(itemname,“raw”,“ru.falcon5f.carguide;”);我已经编辑了你的代码片段,希望这会让你更容易。我假设你从给定的捆绑包中额外构造html文件名。我想是的。试试看,我不是100%通过捆绑包进入活动的,毕竟你是实现应用程序的人。如果你遇到任何问题或困难领带回信。请看t