Я знаю, что это глупый вопрос, но я давно не программировал Java в Android Studio. Так что на самом деле у меня проблема, что я не могу получить возврат из класса в другой. Я пробовал предлагать различные варианты решений, но никто из них не работал. Не знаю, почему. Я ничего не вижу TextView в xml.Android Studio: не удается получить строку возврата из другого класса
Вот MainActivity.java:
public class MainActivity extends ActionBarActivity {
TextView txt_temp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
XMLreference();
StringRequest();
}
public void XMLreference(){
txt_temp = (TextView) findViewById(R.id.txt_temp);
}
public void StringRequest(){
WebServiceRequest webService = new WebServiceRequest();
String request = webService.main();
txt_temp.setText(request);
}
}
А вот WebServiceRequest.java:
public class WebServiceRequest {
private static final String username = "*********"; // put your Device Cloud username here
private static final String password = "*********"; // put your Device Cloud password here
public String responseContent;
/**
* Run the web service request
*/
public String main() {
HttpsURLConnection conn = null;
try {
// Create url to the Device Cloud server for a given web service request
URL url = new URL("https://devicecloud.digi.com/ws/DataStream/00000000-00000000-********-********/xbee.serialIn");
conn = (HttpsURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("GET");
// Build authentication string
String userpassword = username + ":" + password;
// can change this to use a different base64 encoder
String encodedAuthorization = Base64.encodeToString(userpassword.getBytes(), Base64.DEFAULT).trim();
// set request headers
conn.setRequestProperty("Authorization", "Basic "
+ encodedAuthorization);
InputStream is = conn.getInputStream();
Scanner isScanner = new Scanner(is);
StringBuffer buf = new StringBuffer();
while (isScanner.hasNextLine()) {
buf.append(isScanner.nextLine() + "\n");
}
responseContent = buf.toString();
// add line returns between tags to make it a bit more readable
responseContent = responseContent.replaceAll("><", ">\n<");
// Output response to standard out
// System.out.println(responseContent);
} catch (Exception e) {
// Print any exceptions that occur
e.printStackTrace();
} finally {
if (conn != null)
conn.disconnect();
}
return responseContent;
}
}
Я уже пытался создать
public void getResponseContent() {
return responseContent;
}
И получить ting it with
WebServiceRequest webService = new WebServiceRequest();
String request = webService.getResponsteContent();
Но это тоже не сработало. Я не уверен, но я делаю глупую ошибку, и после нескольких часов программирования я не могу найти ключ к ее решению.
Переименов 'Главный()' в 'getResponsteContent()' –
@MuratK. извините, но это тоже не сработало. Вы имеете в виду это? public void StringRequest() {WebServiceRequest webService = новый WebServiceRequest(); Строковый запрос = webService.getResponseContent(); txt_temp.setText (запрос); } – Steinfeld
Вы уверены, что 'responseContent' не был пустым, т. Е. Вызов веб-службы был успешным? – dejvuth