'' intent.getExtras()的getString''应用程序在重新打开时崩溃

时间:2018-01-04 20:59:20

标签: java android-studio

当我将一个变量从一个活动传递到另一个活动时,一切正常但是 当我退出应用程序并重新打开它时,应用程序崩溃了。

我认为这段代码可以从之前的活动中获取变量。

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 = "";
                }

1 个答案:

答案 0 :(得分:1)

您应该尝试检查:

('A1', 'A2', 'B1', 'B2'), ('A1', 'A2', 'B1', 'B3'), ('A1', 'A2', 'B1', 'C1'), ('A1', 'A2', 'B1', 'C2'), ('A1', 'A2', 'B1', 'C3')....