如何解决如何将此代码更改为Kotlin以从Firebase数据库查看pdf
如何将我的Java代码更改为kotlin代码,以从Firebase数据库中查看pdf
公共类javaclasActivity扩展了AppCompatActivity {
private TextView text1;
private PDFView pdfView;
private FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference mref = database.getReference("url");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdf);
pdfView = (PDFView) findViewById(R.id.pdfView33);
text1 = (TextView) findViewById(R.id.text11);
mref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
text1.setText(value);
Toast.makeText(javaclasActivity.this,"updated",Toast.LENGTH_SHORT).show();
String url = text1.getText().toString();
new RetrivePdfStream().execute(url);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(javaclasActivity.this,"failed to load",Toast.LENGTH_SHORT).show();
}
});}
///我在下面的这段代码中遇到了麻烦
class RetrivePdfStream extends AsyncTask<String,Void,InputStream> {
@Override
protected InputStream doInBackground(String... strings) {
InputStream inputStream = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == 200) {
inputStream = new BufferedInputStream(urlConnection.getInputStream());
}
} catch (IOException e) {
return null;
}
return inputStream;
}
@Override
protected void onPostExecute(InputStream inputStream) {
pdfView.fromStream(inputStream).load();
}
}
}
到此kotlin文件
class pdfActivity:AppCompatActivity(){
lateinit var pdfview: PDFView
lateinit var text1 : TextView
var database:FirebaseDatabase=FirebaseDatabase.getInstance()
var mref :DatabaseReference=database.getReference("url")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pdf)
pdfview=findViewById(R.id.pdfView33)
text1=findViewById(R.id.text11)
}
}
主要问题是这个
class RetrivePdfStream
解决方法
您可能要在此处修复某些格式。
此外,如果我理解正确,则希望将Java迁移到Kotlin。
对于Kotlin中的RetrivePdfStream
,您不是从AsyncTask
继承的。
这样做:
class RetrivePdfStream : AsyncTask<String,Void,InputStream>() { ... }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。