毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 移动平台 >> 正文

Dialog提示用户打开网络连接后返回Activity

更新时间:2012-12-28:  来源:毕业论文

Dialog提示用户打开网络连接后返回Activity
 一个android应用,先保存用户的手机号、确认网络连接打开、GPS打开,然后跟远程服务器建立连接,自己GPS定位。
    保存用户的手机号、提示打开网络连接、提示打开GPS,用了3个Dialog。在Activity的onCreate()方法里面先判断前面3个条件是否满足,不满足就显示Dialog,为了不让3个Dialog挤在一起,用了下面的代码:
Java code? public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                           if((myPhoneNumber = getMyPhoneNumber()) == null){             showDialog(DIALOG_MY_PHONE_NUMBER);         } else if (!isNetworkConnected()){             showDialog(DIALOG_NETWORK);         } else if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {             showDialog(DIALOG_GPS);         } else {             ……             //跟远程服务器建立连接             //GPS定位             ……         } }

    Dialog定义在
Java code? @Override    protected Dialog onCreateDialog(int id){         Dialog dialog = null;         switch(id){         case DIALOG_MY_PHONE_NUMBER:             LayoutInflater factory = LayoutInflater.from(MainActivity.this);             final View dialogView = factory.inflate(R.layout.phone_number_dialog, (ViewGroup)findViewById(R.id.layout_root));                           dialog = new AlertDialog.Builder(MainActivity.this)             .setTitle("手机号码设置")             .setView(dialogView)             .setPositiveButton("设置", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     EditText text = (EditText)dialogView.findViewById(R.id.my_phone_number);                     SharedPreferences settings = getPreferences(MODE_PRIVATE);                     SharedPreferences.Editor editor = settings.edit();                     editor.putString("myPhoneNumber", text.getText().toString());                     editor.commit();                                           Intent intent = new Intent();                     intent.setClass(MainActivity.this, MainActivity.class);                     MainActivity.this.startActivity(intent);                 }             }).setNegativeButton("取消", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     MainActivity.this.finish();                 }             })             .create();             break;         case DIALOG_NETWORK:             dialog = new AlertDialog.Builder(MainActivity.this)             .setTitle("网络设置提示")             .setMessage("网络连接不可用,是否进行设置?")             .setPositiveButton("设置", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     Intent intent = null;                     //判断手机系统的版本  即API大于10 就是3.0或以上版本                     if(android.os.Build.VERSION.SDK_INT > 10){                         intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                     }else{                         intent = new Intent();                         ComponentName component = new ComponentName("com.android.settings","com.android.settings.WirelessSettings");                         intent.setComponent(component);                         intent.setAction("android.intent.action.VIEW");                     }                     MainActivity.this.startActivity(intent);                 }             }).setNegativeButton("取消", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     MainActivity.this.finish();                 }             })             .create();             break;         case DIALOG_GPS:             dialog = new AlertDialog.Builder(MainActivity.this)             .setTitle("GPS设置提示")             .setMessage("GPS不可用,是否进行设置?")             .setPositiveButton("设置", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);                       MainActivity.this.startActivity(callGPSSettingIntent);                 }             })             .setNegativeButton("取消", new DialogInterface.OnClickListener() {                 public void onClick(DialogInterface dialog, int which) {                     MainActivity.this.finish();                 }             })             .create();             break;         default:             dialog = null;         }         return dialog;     }

    我希望每一个Dialog的事情处理完以后,重新启动Activity,重新判断3个条件是否满足。第一个Dialog点“设置”按钮后可以重新启动Activity,后面两个Dialog启动了新的Activity,从新的Activity回来的时候,不知道怎样才能重新启动原来的Activity,请大家给个思路。谢谢。

这样设计的思想,不易于用户体验   站在用户的角度上来讲  如果用户3个都没打开  你岂不是要练成弹出3次  并且需设置3次    

思路如下:另外单独写一个方法  来check各种调节    方法名可以取checkVaxxx

建议只做成1个提示信息,提示信息中说明需要设置的选项  有一个设置和取消按钮 用户点击设置时  直接将需要勾   GPS设置、网络设置  选勾选上 跳转到手机号码设置  如果用户设置了手机号码成功  ok了           
    如果用户跳转到设置手机号码,又不想设置了   那么还原设置项即可


我的思路仅供参考   还有很大的不足  待改进~~~~

,打开GPS设置后,你的activity自然会被恢复,所以你在onStop或者onResume判断条件去show dialog,如何?

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。