[英]How to share htm text file from assets folder?
直到今天,当我尝试从资产文件夹加载一些 html 文本文件时,我一直在使用下面的这段代码。 但不幸的是,共享意图拒绝工作。 因为我以前是用 EXTRA_TEXT 来声明的。 现在我从私有静态最终 String URL="file:///android_asset/html_files/dancerkate.html"; 读取我的文件;
请帮我更改此代码。这样它就可以共享来自 dancerkate.html 的文本,谢谢!
switch (item.getItemId()){
case R.id.share_button:
//share Copied Text characters via other apps button
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, textView.getText().toString() + "Get App here: https://play.google.com/store/apps/details?id=com.joseph.workerbender");
sendIntent.setType("text/plain");
Intent.createChooser(sendIntent, "Share via");
startActivity(sendIntent);
}
return super.onOptionsItemSelected(item);
首先,当 intentType 为文本时,您无法通过使用intent
发送文件
sendIntent.setType("text/plain");
您可以阅读.html
文件并获取该文件中的text
并通过共享发送
private String getTextFromAssets(String fileName){
try {
final int bufferSize = 1024;
final char[] buffer = new char[bufferSize];
InputStream inputStream = getResources().getAssets().open(fileName);
final StringBuilder out = new StringBuilder();
Reader in = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
int charsRead;
while((charsRead = in.read(buffer, 0, buffer.length)) > 0) {
out.append(buffer, 0, charsRead);
}
Log.d("HtmlText", out.toString());
return out.toString();
} catch (IOException e) {
Log.e("HtmlText", "HTML Read Error: "+e.toString());
}
return "";
}
现在从您的代码中调用该方法
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, getTextFromAssets("dancerkate.html"));
sendIntent.setType("text/plain");
Intent.createChooser(sendIntent, "Share via");
startActivity(sendIntent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.