Я пытаюсь сохранить тело этой ссылки в String HTML, а затем загрузить его в WebView. (Анализ кода выполняется с помощью Jsoup). Когда я нажимаю кнопку, отладчик показывает мне String HTML = re.fixCode(); и говорит «Отладка текущего указателя инструкций».Невозможно получить доступ к методам/переменным в разных классах
Я пробовал много вещей, например, передавая строку в методе и передавая ей строку. Но то же самое происходит снова и снова. Мое заключение заключается в том, что он не передает метод/переменные моим другим классам? (Надеюсь, вы понимаете, что последний бит)
И если это так, как я могу получить к ним доступ? Через намерения?
Чтобы быть ясным, я хочу получить тело, передать его на строку и загрузить ее в WebView. Благодаря!
Основной класс
public class MainActivity extends Activity {
private String uri = "http://www.novasoftware.se/webviewer/%28S%28muz0tu55twfd43zkqrlejb55%29%29/design1.aspx?schoolid=18200&code=83310";
private RequestTask re;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button1);
final WebView web = (WebView) findViewById(R.id.webView1);
WebSettings webSettings = web.getSettings();
webSettings.setJavaScriptEnabled(true);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new RequestTask().execute(uri);
loadWeb();
}
});
}
private void loadWeb() {
**String HTML = re.fixCode();**
System.out.println(HTML);
// web.loadData(re.fixedHtml, "text/html", null);
}
}
RequestTask класс
package com.dir.schema;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.os.AsyncTask;
public class RequestTask extends AsyncTask<String, String, String>{
public String html, fixedHtml;
@Override
protected String doInBackground(String... uri) {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
String responseString = null;
try {
response = httpclient.execute(new HttpGet(uri[0]));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
responseString = out.toString();
} else{
//Closes the connection.
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
//TODO Handle problems..
} catch (IOException e) {
//TODO Handle problems..
}
return responseString;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//Do anything with response..
html = result;
fixCode();
}
public String fixCode() {
Document doc = Jsoup.parse(html);
return fixedHtml = doc.body().toString();
}
}
Вы получаете реальную ошибку? Если так, то, что это? Если это NPE, это 'doc' или' doc.body() '' null'? Если нет, вы уверены, что не просто случайно поставили там точку останова? –
@JasonC Это не так, и у NPE doc и doc.body() есть значение, я проверил. , когда я запускаю его, он говорит: «Этот вид запуска - это конфигурация, чтобы открыть перспективу Dubug при подвешенном состоянии» – Donald