我正在尝试制作一个Android应用程序,该应用程序将数据添加到一个片段上的HTML文档中,然后单击另一个片段上的按钮将其打印出来。我正在尝试使用Android文档上的this页作为指南,但是单击该按钮后却没有任何作用。在仿真器上进行测试时,logcat中什么都没有看到,但是在实际设备上进行测试时,我看到了以下错误:
E/DatabaseIndexingManager: Cannot find SearchIndexableResources for class name: com.android.settings.print.PrintSettingsFragment
更新:即使我还没有进行任何更改,选择片段后应用程序现在也会崩溃。日志猫现在给出以下错误:
E/activityManager: ANR in com.google.android.ims
PID: 3635
Reason: Broadcast of Intent { act=android.telephony.action.CARRIER_CONFIG_CHANGED flg=0x15000010 cmp=com.google.android.ims/.receivers.CarrierConfigChangedReceiver (has extras) }
然后继续提供有关CPU使用情况的大量统计信息。
片段代码:
public class CalendarFragment extends Fragment {
private WebView mWebView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
Button button = container.findViewById(R.id.button);
//declaring OnClicklistener as an object
View.OnClicklistener btnClick = (View v) -> doWebViewPrint();
button.setOnClicklistener(btnClick);
return inflater.inflate(R.layout.placeholder2,container,false);
}
private void doWebViewPrint() {
// Create a WebView object specifically for printing
WebView webView = new WebView(getactivity());
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view,String url) {
return false;
}
@Override
public void onPageFinished(WebView view,String url) {
Log.i(TAG,"page finished loading " + url);
createWebPrintJob(view);
mWebView = null;
}
});
webView.loadUrl("file:///android_asset/calendar.html");
mWebView = webView;
}
private void createWebPrintJob(WebView webView) {
// Get a PrintManager instance
PrintManager printManager = (PrintManager) getactivity()
.getSystemService(Context.PRINT_SERVICE);
String jobName = getString(R.string.app_name) + " Document";
// Get a print adapter instance
PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(jobName);
printManager.print(jobName,printAdapter,new PrintAttributes.Builder().build());
}
}
Placeholder2.xml(我将在以后更改名称):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wv">
</WebView>
<Button
android:id="@+id/button"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:layout_centerVertical="true"
android:backgroundTint="@color/colorPrimary"
android:drawableStart="@drawable/ic_action_print"
android:paddingStart="50dp"
android:paddingEnd="50dp"
android:textColor="#fff"/>
</RelativeLayout>
正确的方法是什么?