
Опытный
 
Профиль
Группа: Участник
Сообщений: 283
Регистрация: 5.6.2008
Где: White Russia, Min sk
Репутация: 3 Всего: 9
|
ivanovpv, | Цитата | Сложно судить без кода...
|
(Часть кода выдираю, а то не получается отправить...) Основное активити приложения. У меня оно является слушателем нажатия кнопки, и в зависимости от того, какая кнопка нажата, вытягивает из strings нужную информацию и в три шага (два диалога + данные из стрингс) отправляет данные во второе активити | Код |
package sms.android.banking;
public class StartActivity extends Activity implements OnClickListener { private static final String TAG = null;
/*----------------------Запуск меню Options---------------------*/ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); setMenuBackground(); return true; } protected void setMenuBackground(){
Log.d(TAG, "Enterting setMenuBackGround"); getLayoutInflater().setFactory( new Factory() {
@Override public View onCreateView ( String name, Context context, AttributeSet attrs ) {
if ( name.equalsIgnoreCase( "com.android.internal.view.menu.IconMenuItemView" ) ) {
try { // Ask our inflater to create the view LayoutInflater f = getLayoutInflater(); final View view = f.createView( name, null, attrs ); new Handler().post( new Runnable() { public void run () { view.setBackgroundResource( R.drawable.menu_bg); } } ); return view; } catch ( InflateException e ) {} catch ( ClassNotFoundException e ) {} } return null; } }); }
/*Обработка выбора пунктов Меню*/ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.settings:StartActivity.this.finish(); Intent intent = new Intent(StartActivity.this, SettingsScreen.class); startActivity(intent); finish(); break;
case R.id.my_help: final Dialog help = new Dialog(this); help.setContentView(R.layout.help); help.setTitle("SMS-Banking BY HELP!"); help.setCancelable(true);
Button cancelButton = (Button) help.findViewById(R.id.dialog_cancel); cancelButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { help.dismiss();}}); help.show(); break;
case R.id.about: final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.about_dialog); dialog.setTitle("SMS-Banking BY"); dialog.setCancelable(true); Button mailTo = (Button) dialog.findViewById(R.id.mail_to); mailTo.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); String[] recipients = new String[]{"[email protected]",""}; emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, recipients); emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.app_name)); emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Сообщение..."); emailIntent.setType("text/plain"); startActivity(Intent.createChooser(emailIntent, "Отправить письмо..."));
finish(); } }); Button cnslButton = (Button) dialog.findViewById(R.id.dialog_cancel); cnslButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); //finally show the dialog dialog.show(); break; } return true; }
/* --------------------вытягиваем данные из Preferences----------------*/ SharedPreferences preferences; @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); /*LayoutInflater inflater = getLayoutInflater(); LinearLayout content = (LinearLayout) inflater.inflate(R.layout.main, null);*/
preferences = PreferenceManager.getDefaultSharedPreferences(this);
Button Agrbnk_btn=(Button)findViewById(R.id.agrbnk_btn); Agrbnk_btn.setOnClickListener(this); Button Mts_btn=(Button)findViewById(R.id.mts_btn); Mts_btn.setOnClickListener(this); Button Vel_btn=(Button)findViewById(R.id.vel_btn); Vel_btn.setOnClickListener(this); Button Life_btn=(Button)findViewById(R.id.life_btn); Life_btn.setOnClickListener(this); Button Dialog_btn=(Button)findViewById(R.id.dialog_btn); Dialog_btn.setOnClickListener(this); Button Ds_btn=(Button)findViewById(R.id.ds_btn); Ds_btn.setOnClickListener(this); Button Byfly_btn=(Button)findViewById(R.id.byfly_btn); Byfly_btn.setOnClickListener(this); } /*-- ------------------обработчик операции Oplata---------------------------*/ public void myAlertDialogs(final String identificator, final String data_payment){ /*диалог ввода суммы оплаты*/ AlertDialog.Builder alert_sum = new AlertDialog.Builder(this); alert_sum.setTitle("Оплата услуг"); alert_sum.setMessage("Введите сумму оплаты"); alert_sum.setIcon(R.drawable.bel_rub); final EditText input_sum = new EditText(this); input_sum.setInputType(InputType.TYPE_CLASS_NUMBER); alert_sum.setView(input_sum); input_sum.setText(preferences.getString("sum_def_data", "n/a")); input_sum.setTextColor(Color.BLUE); final Editable summa = input_sum.getText(); alert_sum.setPositiveButton("Подтвердить", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { AlertDialog.Builder alert_phn_num = new AlertDialog.Builder(StartActivity.this); alert_phn_num.setTitle("Оплата услуг"); alert_phn_num.setMessage ("Введите номер лицевого счета или номер оплачиваемого телефона в формате 29#######"); final EditText input = new EditText(StartActivity.this); input.setInputType(InputType.TYPE_CLASS_NUMBER); alert_phn_num.setView(input); alert_phn_num.setIcon(R.drawable.u8230); input.setText(data_payment); input.setTextColor(Color.BLUE); alert_phn_num.setPositiveButton("Подтвердить", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { Editable number = input.getText(); Intent intent = new Intent(); intent.setClass(StartActivity.this, SMS.class); intent.putExtra(SMS.EXT_PHONE_NUMBER,preferences.getString("num_def_data", "1250")); intent.putExtra(SMS.EXT_INQUIRY, getString(R.string.opl_str)+" "+preferences.getString("pas_data","")+" "+ summa+" "+identificator+" "+number); startActivity(intent); finish();}} ); alert_phn_num.setNegativeButton("Отменить", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) {} }); alert_phn_num.show();}}); alert_sum.setNegativeButton("Отменить", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) {}}); alert_sum.show(); }
/*-------- обработка нажатия кнопок на основной форме----------------*/
public void onClick(View v) { switch (v.getId()){ /*data_payment - это номер оплачиваемого телефона или лицевого счета*/ case R.id.agrbnk_btn:{ Intent intent = new Intent(); intent.setClass(this, SMS.class); startActivity(intent); finish(); intent.putExtra(SMS.EXT_PHONE_NUMBER, preferences.getString("num_def_data", "1250")); intent.putExtra(SMS.EXT_INQUIRY,getString(R.string.ost_str)+" "+preferences.getString("pas_data","")); startActivity(intent); finish(); break; }
case R.id.mts_btn:{ String identificator=getString(R.string.mts_str); String data_payment=preferences.getString("mts_data",""); myAlertDialogs(identificator,data_payment); break; } case R.id.vel_btn:{ String identificator=getString(R.string.vel_str); String data_payment=preferences.getString("vel_data",""); myAlertDialogs(identificator,data_payment); break; } case R.id.life_btn:{ String identificator=getString(R.string.life_str); String data_payment=preferences.getString("life_data",""); myAlertDialogs(identificator,data_payment); break; } case R.id.dialog_btn:{ String identificator=getString(R.string.dialog_str); String data_payment=preferences.getString("dialog_data",""); myAlertDialogs(identificator,data_payment); break; } case R.id.ds_btn:{ String identificator=getString(R.string.dst_str); String data_payment=preferences.getString("dst_data",""); myAlertDialogs(identificator, data_payment); break; } case R.id.byfly_btn:{ String identificator=getString(R.string.tel_str); String data_payment=preferences.getString("bf_data",""); myAlertDialogs(identificator, data_payment); break; } default: break; } } }
|
Добавлено @ 17:16Второе активити получает этот поток, и на нём одна кнопка. При нажатии идет отправка СМС и в Тостах отображается ход данной операции (отправлено, доставлено и т.п.) | Код | package sms.android.banking;
public class SMS extends Activity { public static final String EXT_PHONE_NUMBER="phone_number"; public static final String EXT_INQUIRY = "inquiry"; ProgressDialog pleaseWaitDialog;
Button btnSendSMS; EditText txtPhoneNo; EditText txtMessage; public void myProgressDialog(final String contProgress){ ProgressDialog pleaseWaitDialog = ProgressDialog.show(this,"Отправка СМС-сообщения",contProgress, true); pleaseWaitDialog.setIcon(R.drawable.sms_send); }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sender); Bundle extras = getIntent().getExtras(); String phone_number=extras.getString(EXT_PHONE_NUMBER); String inquiry=extras.getString(EXT_INQUIRY); btnSendSMS = (Button)findViewById(R.id.btnSendSMS); txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo); txtPhoneNo.setText(phone_number); txtMessage=(EditText) findViewById(R.id.txtMessage); txtMessage.setText(inquiry); btnSendSMS.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String phoneNo = txtPhoneNo.getText().toString(); String message = txtMessage.getText().toString(); String sms_start=getString(R.string.progress_cont_sms_send_start); myProgressDialog(sms_start); if (phoneNo.length()>0 && message.length()>0) sendSMS(phoneNo, message); else Toast.makeText(getBaseContext(), "Введите текст сообщения и номер", Toast.LENGTH_SHORT).show(); } }); } //---отправка СМС-сообщения-- //---когда СМС-сообщение доставлено--- registerReceiver(new BroadcastReceiver(){ @Override public void onReceive(Context arg0, Intent arg1) { switch (getResultCode()) { case Activity.RESULT_OK: String res_ok=getString(R.string.progress_cont_res_ok); myProgressDialog(res_ok); Toast.makeText(getBaseContext(), "СМС-сообщение доставлено", Toast.LENGTH_SHORT).show(); break; case Activity.RESULT_CANCELED: String res_cancel=getString(R.string.progress_cont_res_cancel); myProgressDialog(res_cancel); Toast.makeText(getBaseContext(), "СМС-сообщение не доставлено!", Toast.LENGTH_SHORT).show(); break; } } }, new IntentFilter(DELIVERED)); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); }
/* Обрабатываем нажатие hard-кнопок телефона*/ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyDown(keyCode, event); if (keyCode == KeyEvent.KEYCODE_BACK) { SMS.this.finish(); Intent intent = new Intent(this, StartActivity.class) .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); finish(); startActivity(intent); finish();} else if (keyCode == KeyEvent.KEYCODE_MENU) { SMS.this.finish(); Intent intent = new Intent(SMS.this, SettingsScreen.class); startActivity(intent); finish();} else if (keyCode == KeyEvent.KEYCODE_HOME) { SMS.this.finish(); Intent intent = new Intent(SMS.this, StartActivity.class); startActivity(intent); finish(); } return false; } }
|
Затем вызывается Броудкаст ресивер и слушает входящее СМС. Отображает его в Тосте Код я уже постил тутЭто сообщение отредактировал(а) CaptainNemo - 27.4.2011, 17:24
|