2012-09-01 168 views
0

首先我想澄清它,我还是刚开始一个星期左右很业余的Android开发者以前从教程学习上http://developer.android.com/training/basics/firstapp/index.html进度对话框不会出现

所以,如果我的代码看起来丑陋原谅我为此..

现在的实际问题 - “PROGRESS DIALOG DOES NOT APPEAR” - 但其余的代码工作正常。它正在发送短信,我正在接收它们,正面临PROGRESS DIALOG的问题。

public class MainActivity extends Activity { 
Context context; 

public final static String EXTRA_NUMBER = "com.example.myfirstapp.NUMBER"; 
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

/** Called when the user clicks the Send button */ 
public void sendMessage(View view) { 
    if (!isOnline()) { 
     Toast.makeText(MainActivity.this,"No Internet Access..Cannot Send SMS", Toast.LENGTH_LONG).show(); 
    } else { 

     ProgressDialog prgDialog = ProgressDialog.show(MainActivity.this,"Free Sms","Sending SMS..Please Wait..!!",true);   
     EditText editTextNum = (EditText) findViewById(R.id.edit_number); 
     EditText editText = (EditText) findViewById(R.id.edit_message); 
     String number = editTextNum.getText().toString(); 
     String message = editText.getText().toString(); 
     try { 
      prgDialog.dismiss(); 
      String msgreciever = number; 
      String testMessage = message; 
      SmsSender.sendMessage(msgreciever, testMessage);     
      Toast.makeText(MainActivity.this, "Message Sent Successfully",Toast.LENGTH_LONG).show(); 
      editTextNum.setText(""); 
      editText.setText(""); 
     } catch (Exception ex) { 
      prgDialog.dismiss(); 
      Toast.makeText(MainActivity.this, "Message Sending Failed",Toast.LENGTH_LONG).show(); 
     } 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

public boolean isOnline() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
    if (netInfo != null && netInfo.isConnectedOrConnecting()) { 
     return true; 
    } 
    return false; 
} 

} 
+0

@nandeesh什么都ü怎么办? –

+0

我从代码 – nandeesh

+0

删除了导入,如何编辑我的帖子? –

回答

0

你好塔潘后删除对话框其实你必须使用“线程”或“可运行”的这种操作.. 。所以把它采用线程这一修改后的代码的“其他”代码的一部分..所以它会definitly为你工作....

EditText editTextNum = (EditText) findViewById(R.id.edit_number); 
EditText editText = (EditText) findViewById(R.id.edit_message); 
final String number = editTextNum.getText().toString(); 
final String message = editText.getText().toString(); 
final ProgressDialog prgDialog = ProgressDialog.show(this,"Free Sms","Sending SMS..Please Wait..!!",true); 
Thread t=new Thread(new Runnable() { 
    public void run() { 
     // TODO Auto-generated method stub 
     try { 
      Thread.sleep(1000); 
      SmsSender.sendMessage(number, message); 
      prgDialog.dismiss(); 
      Toast.makeText(MainActivity.this, "Message Sent Successfully",Toast.LENGTH_LONG).show(); 

     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
}); 
t.start(); 
editTextNum.setText(""); 
editText.setText(""); 
1

你后立即prgDialog.show.

也就是说它没有显示出来的原因调用

prgDialog.dismiss

编辑: 添加以下代码,而不是解雇,这应该3秒

new CountDownTimer(3000, 1000) 
{ 
     @Override 
     public void onTick(long l) { 
     } 

     @Override 
     public void onFinish(){ 
      prgDialog.dismiss(); 
     }; 
}.start(); 
+0

但应用程序冻结了一段时间,当我点击发送按钮,然后显示“消息已成功发送”的祝酒信息 –

+0

您是否删除了关闭呼叫。 – nandeesh

+0

不,我没有删除它..它与我粘贴在这里相同的代码。 –