Stringデータの受け渡し
下記のソースコードでStringのデータの受け渡しをして、データがなければダイアログ表示あればActivityの移動を行うとしているのですが
jsonデータがしっかりと返ってきているのに、なぜか
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
エラーが出てしまいます。
どうすればしっかりとデータの受け渡しができますか。
(classの名称などはここで変えているので、曖昧な部分がある可能性があります)
Java
1public class MainActivity extands Activity { 2 String text; 3 /* 4 省略 5 */ 6 button = (Button) findViewById(R.id.click); 7 button.setOnClickListener(new View.OnClickListener() { 8 @Override 9 public void onClick(View v) { 10 startAsync(); 11 if(text.length() == 0) { 12 AlertDialog.Builder alertDlg = new AlertDialog.Builder(LoginActivity.this); 13 alertDlg.setTitle("テスト"); 14 alertDlg.setMessage("テスト"); 15 alertDlg.setPositiveButton( 16 "OK",null); 17 alertDlg.create().show(); 18 }else if(text.length() != 0) { 19 saveString(LoginActivity.this,AT,logintext); 20 Intent intent = new Intent(MainActivity.this, NextActivity.class); 21 startActivity(intent); 22 } 23 } 24 }); 25 26 private void startAsync(){ 27 final String str; 28 str = text; 29 30 Asynctask1 starttask = new Asynctask1(str); 31 starttask.execute(); 32 } 33}
Java
1public class Asynctask extends AsyncTask<String,String,String> { 2 3 String text2 = ""; 4 5 6 public Asynctask1(String text) { 7 text2 = text; 8 } 9 10 11 @Override 12 protected String doInBackground(String...value) { 13 14 /* 15 POSTリクエスト(省略) 16 */ 17 18 try { 19 20 switch (status) { 21 case HttpURLConnection.HTTP_OK: 22 InputStream is = urlCon.getInputStream(); 23 BufferedReader in = new BufferedReader(new InputStreamReader(is)); 24 25 StringBuilder be = new StringBuilder(); 26 StringBuilder result = new StringBuilder(); 27 28 String line; 29 30 while ((line = be.readLine()) != null) { 31 sb.append(line); 32 } 33 34 JSONObject jsonObject2 = new JSONObject(be.toString()); 35 result.append(jsonObject2.get("gettext")); 36 37 retun result.toString(); 38 39 case HttpURLConnection.HTTP_UNAUTHORIZED: 40 break; 41 default: 42 break; 43 } 44 } catch (Exception e) { 45 e.printStackTrace(); 46 } finally { 47 try { 48 if (reader != null) { 49 reader.close(); 50 } 51 if (os != null) { 52 os.close(); 53 } 54 } catch (IOException e) { 55 e.printStackTrace(); 56 } 57 } 58 return null; 59 } 60 61 @Override 62 protected void onPostExecute(String result) { 63 text2 = result; 64 } 65}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/27 09:07