0

最初に、私はまだ非常にアマチュアの Android 開発者であり、http://developer.android.com/training/basics/firstapp/index.html のチュートリアルから学習して約 1 週間前に始めたばかりであることを明確にさせてください

したがって、私のコードが醜いように見える場合は、それを許してください..

実際の問題 - 「PROGRESS DIALOG DOESN'T APPEAR」 - しかし、コードの残りの部分は正常に動作しています。それはSMSを送信しており、私はそれらを受信して​​います.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;
}

}
4

2 に答える 2

1

あなたが呼んでいます

prgDialog.dismiss直後prgDialog.show.

それが表示されない理由です。

編集:却下する代わりに以下のコードを追加してください。これにより、3秒後にダイアログが削除されます

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

       @Override
       public void onFinish(){
             prgDialog.dismiss();
       };
 }.start();
于 2012-09-01T05:01:44.600 に答える
0

こんにちはタパン実際には、この種の操作には「スレッド」または「実行可能」を使用する必要があります...したがって、コードの「その他」の部分に、スレッドを使用するこの変更されたコードを配置します。 ...。

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("");
于 2012-09-03T05:26:42.420 に答える