2017-04-11 8 views
1

서버로 데이터를 보내려고 할 때 문제가 발생했습니다. 원래 여기에 추가 된 유출 된 창을 말합니다. 여기에 내가 내 다른 페이지에 대해 동일한 코드를 사용하고 내가 오류가 발생하지 않았다하지만 난 같은 코드를 구현 때 오류가있어 에러가 온 어디 내가 모르는누출 된 윈도우 DecorView @ 666372 [원래 여기에 추가되었습니다]

public class Feedback extends AppCompatActivity { 

    Spinner topic; 
    EditText subject, feedback; 
    Button btnsend; 
    List<String> listTopic; 
    ArrayAdapter<String> listarray; 
    String topik, subj, nup, feed; 
    private ProgressDialog pDialog; 
    String feed_url = "http://ds.bki.co.id:7777/ds/android/feedback.php"; 
    AlertDialog.Builder builder; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_feedback); 

     builder = new AlertDialog.Builder(Feedback.this); 

     listTopic = new ArrayList<String>(); 
     listTopic.add("Interface"); 
     listTopic.add("Menu"); 
     listTopic.add("Features Request"); 
     listTopic.add("Bugs"); 
     listTopic.add("Others"); 

     topic = (Spinner) findViewById(R.id.spinner); 
     listarray = new ArrayAdapter<String>(getApplicationContext(), simple_dropdown_item_1line, listTopic); 
     listarray.setDropDownViewResource(simple_dropdown_item_1line); 
     topic.setAdapter(listarray); 

     topic.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
       topik = parent.getItemAtPosition(position).toString(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 

      } 
     }); 

     subject = (EditText) findViewById(R.id.subJect); 
     feedback =(EditText) findViewById(R.id.feedBack); 
     btnsend =(Button) findViewById(R.id.btnSend); 



     btnsend.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       subj = subject.getText().toString(); 
       feed = feedback.getText().toString(); 
       nup = SaveSharedPreference.getNup(getApplicationContext()); 

       Log.d("a", subj); 
       Log.d("b", feed); 
       Log.d("c", nup); 
       Log.d("d", topik); 

       new SendFB().execute(); 
      } 
     }); 

    } 

    private class SendFB extends AsyncTask<Void, Void, Void> { 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(Feedback.this); 
      pDialog.setMessage("Please wait..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     @Override 
     protected Void doInBackground(Void... arg0) { 

      if (subj.equals("")||feed.equals("")){ 
       builder.setTitle("Something went wrong"); 
       builder.setMessage("Enter a valid NUP and Password"); 
       displayAlert("input_error"); 
      } 
      else 
      { 
       StringRequest stringRequest = new StringRequest(Request.Method.POST, feed_url, new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         try { 
          JSONArray jsonArray = new JSONArray(response); 
          JSONObject jsonObject = jsonArray.getJSONObject(0); 
          String code = jsonObject.getString("code"); 
          String message = jsonObject.getString("message"); 
          if (code.equals("Feedback success")) { 
           builder.setTitle("Feedback success..."); 
           builder.setMessage(message); 
           displayAlert(code); 
          } else { 
           builder.setTitle("Feedback Failed..."); 
           builder.setMessage("Please check your internet connection"); 
           displayAlert(code); 
          } 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }) { 
        @Override 
        protected Map<String, String> getParams() throws AuthFailureError { 
         Map<String, String> params = new HashMap<String, String>(); 

         params.put("Nup", nup); 
         params.put("topik", topik); 
         params.put("subject", subj); 
         params.put("feedback", feed); 
         return params; 
        } 
       }; 
       MySingleton.getInstance(Feedback.this).addToRequestque(stringRequest); 
      } 
      return null; 
     } 
     @Override 
     protected void onPostExecute(Void result) { 
      super.onPostExecute(result); 
      if (pDialog.isShowing()) 
       pDialog.dismiss(); 
     } 
    } 

    public void displayAlert(final String code) { 
     builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 

       if (code.equals("Feedback success")) { 
        subject.setText(""); 
        feedback.setText(""); 
       } 
       else if (code.equals("input_error")) { 
        subject.setText(""); 
        feedback.setText(""); 
       } 
       else if (code.equals("Feedback Failed...")) { 
        subject.setText(""); 
        feedback.setText(""); 
       } 

      } 
     }); 
     AlertDialog alertDialog = builder.create(); 
     alertDialog.show(); 
    } 
} 

내 코드입니다 . 아무도 도와 줄 수 있니?

FATAL EXCEPTION: AsyncTask #3 
Process: com.icul.bkiisee, PID: 31153 
java.lang.RuntimeException: An error occurred while executing doInBackground() 
    at android.os.AsyncTask$3.done(AsyncTask.java:318) 
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
    at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
    at java.lang.Thread.run(Thread.java:761) 
Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 
    at android.os.Handler.<init>(Handler.java:200) 
    at android.os.Handler.<init>(Handler.java:114) 
    at android.app.Dialog.<init>(Dialog.java:121) 
    at android.app.Dialog.<init>(Dialog.java:166) 
    at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:46) 
    at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:97) 
    at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:929) 
    at com.icul.bkiisee.Feedback.displayAlert(Feedback.java:207) 
    at com.icul.bkiisee.Feedback$SendFB.doInBackground(Feedback.java:132) 
    at com.icul.bkiisee.Feedback$SendFB.doInBackground(Feedback.java:116) 
    at android.os.AsyncTask$2.call(AsyncTask.java:304) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)  
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  
    at java.lang.Thread.run(Thread.java:761) 

내가 doInBackground을 제거하고 온 클릭 버튼 내부의 대화를 넣어 응용 프로그램

+0

'onPause()'에서'pDialog.dismiss();'를 수행한다. – azizbekian

+0

작동하지 않습니다. – rizal

+0

오류 로그를 게시 할 수 있습니까? – Krish

답변

1

를 실행할 때 내가 가진 오류입니다. 그것은 내 문제를 해결했다