2016-11-09 5 views
0

У меня есть проблема с Button и EditText в Android.Here мой код:OnClick Webservices ошибка

sendButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(isOnline()) { 
       if(Subject.getText().toString().trim().equals("")){ 
        Subject.setError("Subject is required!"); 
        return; 
       } 
       if(Body.getText().toString().trim().equals("")){ 
        Body.setError("Body is required!"); 
        return; 
       } 
       final ProgressDialog progDailog = ProgressDialog.show(
         getActivity(), "Send email", "Sending.....", true); 
       new Thread() { 
        public void run() { 
         try { 
          int result = emailService.sendEmail(spinner.getSelectedItem().toString(), 
            Subject.getText().toString(), 
            Body.getText().toString() 
            ); 
          switch(result){ 
           case 1: 
            getActivity().runOnUiThread(new Runnable() { 
             public void run() { 
              Toast.makeText(getActivity(), "Email send successfully!", Toast.LENGTH_LONG).show(); 
             } 
            }); 
            break; 
           case -1: 
            getActivity().runOnUiThread(new Runnable() { 
             public void run() { 
              Toast.makeText(getActivity(), "Request Error !", Toast.LENGTH_LONG).show(); 
             } 
            }); 
            break; 
          } 
         } catch (Exception e) { 
         } 
         progDailog.dismiss(); 
        } 
       }.start(); 
      }else{ 
       Toast.makeText(getActivity(), "Please check your network connection... !", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 

Моей проблема это: Если я вхожу в Body EditText текста как stackoverflow он прекрасно работает и электронная почта service. Но если я введу текст, например stack overflow с пробелом, ProgressDialog не появляется, и служба электронной почты не вызывается.

Заранее спасибо.

+2

В коде нет ничего, что могло бы вызвать это. Вы пробовали отлаживать, чтобы увидеть поток программы? – Pedantic

+0

Недостаточно кода для поиска проблемы. Ваш фрагмент, должен работать. –

+0

Я думаю, что у меня проблема: у меня есть служба электронной почты 'HttpPost request = new HttpPost (url +"? Email = "+ email +" & subject = "+ subject +" & body = "+ body);' .I не могу отправить тело например «переполнение стека», мне нужен специальный символ, например «переполнение стека» или «stack_overflow». URL-адрес не должен содержать литерала. –

ответ

1

От вашего комментария (код еще не предоставлен) вам необходимо избежать URI перед тем, как сделать свой HTTP-пост-вызов - экранирование текста заменит «» на% 20 и позволит пробелы в объекте и теле.

+0

спасибо!! Теперь он работает отлично. –