当我将一个变量从一个活动传递到另一个活动时,一切正常但是 当我退出应用程序并重新打开它时,应用程序崩溃了。
我认为这段代码可以从之前的活动中获取变量。
String codice = intent.getExtras().getString("idinput");
我尝试使用这样的固定变量进行测试,应用程序没有崩溃。
String codice = "value";
这是完整的代码:
@Override
protected String doInBackground(Void... voids) {
try {
Intent intent = getIntent();
String codice = intent.getExtras().getString("idinput");
Uri.Builder urlBuilder = new Uri.Builder();
urlBuilder.scheme("http");
urlBuilder.authority("myaddress");
urlBuilder.appendEncodedPath("file.php");
urlBuilder.appendQueryParameter("value", codice);
URL url = new URL(urlBuilder.build().toString());
HttpURLConnection con = (HttpURLConnection) url.openConnection();
StringBuilder sb = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String json;
while ((json = bufferedReader.readLine()) != null) {
sb.append(json + "\n");
}
return sb.toString().trim();
} catch (Exception e) {
return null;
}
}
采取变量的先前活动:
Intent i = new Intent(ControlloCodice.this, Visualizza.class);
i.putExtra("idinput", inputname);
startActivity(i);
解决了这个问题
Intent intent = getIntent();
String codice = intent.getExtras().getString("idinput");
有了这个
String codice;
try {
codice = getIntent().getExtras().getString("idinput");
} catch (NullPointerException e ) {
codice = "";
}
答案 0 :(得分:1)
您应该尝试检查:
('A1', 'A2', 'B1', 'B2'), ('A1', 'A2', 'B1', 'B3'), ('A1', 'A2', 'B1', 'C1'), ('A1', 'A2', 'B1', 'C2'), ('A1', 'A2', 'B1', 'C3')....