dr9379 2016-06-17 11:46
浏览 37

我正在尝试登录。 它的工作,但如果没有互联网连接我的应用程序销毁

this is my login activity that i made there is a problem in it if internet connection is available its work properly but if there is no internet connection it shows crashed message please help me to solve this problem

i used Json

public class LoginActivity extends Activity implements OnClickListener{

private EditText etUser,etPassword;
private ImageView bLogin,bCancel,bRegister;
private Spinner spPermission;
private static String[] PERMISSIONS = {"Admin","Donor","Accepter"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_layout);

    etUser = (EditText)findViewById(R.id.etUserName);
    etPassword = (EditText)findViewById(R.id.etPassword);
    etUser.setText("");
    etPassword.setText("");

    spPermission = (Spinner)findViewById(R.id.spPermission);

    ArrayAdapter<String> permAdapter  = new ArrayAdapter<String>(LoginActivity.this,android.R.layout.simple_spinner_item,PERMISSIONS);
    permAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spPermission.setAdapter(permAdapter);

    bLogin = (ImageView)findViewById(R.id.imLogin);
    bCancel= (ImageView)findViewById(R.id.imCancel);
    bRegister = (ImageView)findViewById(R.id.imRegister);

    bLogin.setOnClickListener(this);
    bCancel.setOnClickListener(this);
    bRegister.setOnClickListener(this);
}

@Override
public void onClick(View view) {

    switch(view.getId())
    {
    case R.id.imLogin:
        String uName = etUser.getText().toString();
        String password = etPassword.getText().toString();
        String type  = spPermission.getSelectedItem().toString();
        String message = "POST";

        LoginTask task = new LoginTask(this);
        task.execute(message,uName,password,type);

        break;
    case R.id.imCancel:
        finish();
        break;
    case R.id.imRegister:
        startActivity(new Intent(getApplicationContext(), Registration.class));
        break;
    default:
        break;
    }

}

public class LoginTask extends AsyncTask<String, Void, String>{

    private Context context;
    private JSONParser jsonParser = new JSONParser();
    private JSONObject json;
    private String login_url = //"http://192.168.1.3/login.php";
            "http://10.0.2.2/login.php";
    private String s;
    private String USER_TYPE;

    public LoginTask(Context c)
    {
        context  = c;
    }
    @Override
    protected String doInBackground(String... params) 
    {

        String message = params[0];
        if(message.equals("POST"))
        {
             List<NameValuePair> list = new ArrayList<NameValuePair>();
             final String uName = params[1];
             final String uPass = params[2];
             final String uType = params[3];
             USER_TYPE = uType;
             list.add(new BasicNameValuePair("username", uName));
             list.add(new BasicNameValuePair("password",uPass));
             list.add(new BasicNameValuePair("type", uType));

             json = jsonParser.makeHttpRequest(login_url, params[0], list);
        }
        try 
        {
            s = json.getString("message");
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return s;
    }
    @Override
    protected void onPostExecute(String result)
    {
        try {
            int success = json.getInt("success");
            if(success==1)
            {
                Toast.makeText(context, result, Toast.LENGTH_LONG).show();
                Intent i = new Intent(context.getApplicationContext(),MainView.class);
                i.putExtra("type", USER_TYPE);
                context.startActivity(i);
            }
            else
                //Toast.makeText(context, result, Toast.LENGTH_LONG).show();
                Toast.makeText(context, "Sorry No connection", Toast.LENGTH_LONG).show();

        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

}
  • 写回答

3条回答 默认 最新

  • dongquxiao8545 2016-06-17 11:53
    关注

    change youur doInBackground() method to:

    @Override
    protected String doInBackground(String... params) {
    
        String message = params[0];
        if (message.equals("POST")) {
            try {
                List<NameValuePair> list = new ArrayList<NameValuePair>();
                final String uName = params[1];
                final String uPass = params[2];
                final String uType = params[3];
                USER_TYPE = uType;
                list.add(new BasicNameValuePair("username", uName));
                list.add(new BasicNameValuePair("password", uPass));
                list.add(new BasicNameValuePair("type", uType));
    
                json = jsonParser.makeHttpRequest(login_url, params[0], list);
            }
    
            s = json.getString("message");
        }catch(Exception ex){
            ex.printStackTrace();
        }catch(JSONException e){
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return s;
    }
    
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图