从 Parse 数据库获取字符串以在 WebView 中显示它
Getting a string from Parse database to display it in a WebView
我有一个 URL 存储在我的 Parse Dashboard 中,我正在尝试检索它然后将它添加到 webview 以显示其内容。
当我将检索到的 URL(作为字符串)添加到 toast 时,它运行良好。但是当我将它添加到 webview 时它永远不会工作。它只显示一个空白屏幕。
我在名为 "FavURL" 的仪表板中有一个 class,其中的列(键)是 (URL)。
这是我的代码:
public class View_Fav_PDF extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_fav_pdf);
ParseQuery < ParseObject > query = ParseQuery.getQuery("FavURL");
query.selectKeys(Arrays.asList("URL"));
query.findInBackground(new FindCallback < ParseObject > () {
@Override
public void done(List < ParseObject > posts, ParseException e) {
if (e == null) {
List < String > postTexts = new ArrayList < > ();
for (ParseObject post: posts) {
postTexts.add(post.getString("URL"));
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl(
postTexts.toString());
Toast.makeText(View_Fav_PDF.this, postTexts.toString(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(View_Fav_PDF.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
我想通了。
我只是将 WebView 代码移到 for 循环中并更改了它的变量
public class View_Fav_PDF extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_fav_pdf);
ParseQuery<ParseObject> query = ParseQuery.getQuery("FavURL");
query.selectKeys(Arrays.asList("URL"));
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> posts, ParseException e) {
if (e == null) {
List<String> postTexts = new ArrayList<>();
for(ParseObject post : posts){
postTexts.add(post.getString("URL"));
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl(
post.getString("URL"));
}
Toast.makeText(View_Fav_PDF.this, postTexts.toString(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(View_Fav_PDF.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
}
我有一个 URL 存储在我的 Parse Dashboard 中,我正在尝试检索它然后将它添加到 webview 以显示其内容。
当我将检索到的 URL(作为字符串)添加到 toast 时,它运行良好。但是当我将它添加到 webview 时它永远不会工作。它只显示一个空白屏幕。
我在名为 "FavURL" 的仪表板中有一个 class,其中的列(键)是 (URL)。
这是我的代码:
public class View_Fav_PDF extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_fav_pdf);
ParseQuery < ParseObject > query = ParseQuery.getQuery("FavURL");
query.selectKeys(Arrays.asList("URL"));
query.findInBackground(new FindCallback < ParseObject > () {
@Override
public void done(List < ParseObject > posts, ParseException e) {
if (e == null) {
List < String > postTexts = new ArrayList < > ();
for (ParseObject post: posts) {
postTexts.add(post.getString("URL"));
}
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl(
postTexts.toString());
Toast.makeText(View_Fav_PDF.this, postTexts.toString(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(View_Fav_PDF.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
我想通了。
我只是将 WebView 代码移到 for 循环中并更改了它的变量
public class View_Fav_PDF extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_fav_pdf);
ParseQuery<ParseObject> query = ParseQuery.getQuery("FavURL");
query.selectKeys(Arrays.asList("URL"));
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> posts, ParseException e) {
if (e == null) {
List<String> postTexts = new ArrayList<>();
for(ParseObject post : posts){
postTexts.add(post.getString("URL"));
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl(
post.getString("URL"));
}
Toast.makeText(View_Fav_PDF.this, postTexts.toString(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(View_Fav_PDF.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
}