Диалог прогресса и ошибка тоста при отправке HTTP Post через MultipartEntity - PullRequest
0 голосов
/ 02 августа 2011

Я все еще относительно любитель программирования на Android.У меня очень раздражающая проблема.Когда я нажимаю кнопку «Отправить» в моем классе, он не показывает диалог прогресса, а также игнорирует мои проверки, которые у меня есть для двух кнопок редактирования текста, которые у меня есть.Мой код может быть очень грязным и неорганизованным.Я заранее извиняюсь.

Что мне нужно сделать, это показать, что мой диалог прогресса запущен, и в конце обработчика заставить его уволиться.Также мне нужно показать мой тост и перестать работать класс.

    public class share extends Activity {
    ProgressDialog dialog;
    DefaultHttpClient client = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://api...");


    @Override

    protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.send);
    Button Deliver;

    Deliver = (Button) findViewById (R.id.Send);
    Deliver.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View v) {
      final ProgressDialog dialog = ProgressDialog.show(share.this, "","Uploading...", true);
      dialog.show();
      Handler handler = new Handler();
      handler.post(new Runnable() {
      public void run() {

    EditText etxt_user = (EditText) findViewById(R.id.user_email);
      EditText etxt_pass = (EditText) findViewById(R.id.friend_email);

    if(file == null){

    Toast display = Toast.makeText(share.this, "There are no videos to send", Toast.LENGTH_SHORT);
 display.setGravity(Gravity.BOTTOM|Gravity.LEFT, 0, 0); 
 display.show();

    startActivity(new Intent("android.main.SHARE"));

                         }

    else{

     Pattern pattern= Pattern.compile(
     "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
    "\\@" +
    "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
     "(" +"\\." +  "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +")+"
    );

     Matcher matcher=pattern.matcher(etxt_user.getText().toString());// match the contents of the first edit text
    Matcher matcher1=pattern.matcher(etxt_pass.getText().toString());

     if (!matcher.matches()&&(etxt_user.getText().toString()==null))
                          {
     Toast display1 = Toast.makeText(share.this, "Please enter correct email address", Toast.LENGTH_SHORT);
    display1.show();
    startActivity(new Intent("com..SHARE"));


     }
    else
        {
            //proceed with program                
        }

    if (!matcher1.matches()&&!(etxt_pass.getText().toString()==null)){

    Toast display2= Toast.makeText(share.this, "You entered wrong email Format in the second box", Toast.LENGTH_LONG);
 display2.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);                         
 startActivity(new Intent("com.apapa.vrsixty.SHARE"));                        
    }
    else
    {
          //proceed
     }

    try{

     MultipartEntity me = new MultipartEntity();

    me.addPart("file", new FileBody(new File("/sdcard/videocapture_example.H264")));

    me.addPart("userEmail", new StringBody(etxt_user.getText().toString())); 
     me.addPart("friendEmail", new StringBody(etxt_pass.getText().toString()));

     httppost.setEntity(me);

    HttpResponse responsePOST = client.execute(httppost);  
     HttpEntity resEntity = responsePOST.getEntity(); 
    InputStream inputstream = resEntity.getContent();
    BufferedReader buffered = new BufferedReader(new InputStreamReader(inputstream));
        StringBuilder stringbuilder = new StringBuilder();
        String currentline = null; 
        while ((currentline = buffered.readLine()) != null) { 
         stringbuilder.append(currentline + "\n"); 
        String result = stringbuilder.toString(); 
        Log.v("HTTP UPLOAD REQUEST",result); 
        inputstream.close();  } }
        catch (Exception e) {
        e.printStackTrace();
                }               
                         }dialog.dismiss();
                }
            });
                }
            });

Когда я закончу с этим и нажму «Отправить», у меня появится черный экран без диалога прогресса и даже если у меня есть проверкивместо моего редактируемого текста или если нет файла для отправки, он просто запускает программу, не останавливая ее и не показывая тост.Заранее спасибо, ребята

1 Ответ

0 голосов
/ 02 августа 2011

Похоже, ваш httppost отправляет его на "http://",, который не совсем корректный адрес, что является частью вашей проблемы.

Кроме того: этот код дословно?должен запускаться. В самом начале у вас есть эта строка

new HttpPost("http://"");

В конце у вас есть две кавычки, которые фактически превращают все после второй кавычки в строку, пока не попадут в заключительную кавычку.

...