[英]I am trying to login with my Apps. I dont understand the mistake. I prove my code for a example more easy and this had work it. thanks
when i click login button after enter email and password i got the error as "unfortunately,myapp has beeen stopped" and i got error message as FATAL EXCEPTION: AsyncTask #1 and An error occurred while executing doInBackground(). 当我在输入电子邮件和密码后单击登录按钮时,出现错误消息“不幸的是,myapp已停止运行”,并且出现错误消息,消息是致命异常:AsyncTask#1和执行doInBackground()时发生错误。 for ref i have attached code.
供参考,我已附上代码。 thanks for help
感谢帮助
public class LoginActivity extends Activity implements OnClickListener {
Button submitBtn,registerBtn,forgotpassBtn;
EditText emailEt,passwordEt;
//SessionManager session;
//Driver Login Fields
EditText drloginEmail;
EditText drloginPassword;
TextView drloginResult;
Button loginSubmitBtn;
//Registration Fields
EditText registrationName,registrationEmail,registrationPhone,registrationPassword,registrationConfirmPassword;
TextView registrationResult;
//LostPass Fields
EditText lostPassEmail;
TextView lostPassResltText;
SharedPreferences sh;
JSONParser jparser=new JSONParser();
private static final String regiURL = "http://10.0.2.2/appslider/registration.php";
public static final String loginURL = "http://10.0.2.2/appslider/login.php";
public static final String getDataURL = null;
public static final String recoverPasswordURL = "http://10.0.2.2/sendmail.php";
Context con;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
con=LoginActivity.this;
sh=getSharedPreferences("CRUZER_PREF", MODE_PRIVATE);
init();
String email=sh.getString("loginemail", null);
String pass=sh.getString("loginpass", null);
boolean driver=sh.getBoolean("type", false);
if(email!=null && pass!=null && !driver){
emailEt.setText(email);
passwordEt.setText(pass);
submitBtn.performClick();
}else if(email!=null && pass!=null && driver){
showDriverLoginDialog();
drloginEmail.setText(email);
drloginPassword.setText(pass);
loginSubmitBtn.performClick();
}
}
private void init() {
submitBtn=(Button) findViewById(R.id.loginSubmitBtn);
registerBtn=(Button) findViewById(R.id.loginRegisterBtn);
forgotpassBtn=(Button) findViewById(R.id.loginForgotPassBtn);
submitBtn.setOnClickListener(this);
registerBtn.setOnClickListener(this);
forgotpassBtn.setOnClickListener(this);
emailEt=(EditText) findViewById(R.id.loginEmailEt);
passwordEt=(EditText) findViewById(R.id.loginPassEt);
}
@Override
public void onClick(View v) {
if(!Util.isConnectingToInternet(this)){
Util.showNoInternetDialog(this);
return;
}
switch (v.getId()) {
case R.id.loginSubmitBtn:
if(!TextUtils.isEmpty(emailEt.getText().toString())){
if(!TextUtils.isEmpty(passwordEt.getText().toString())){
new Login().execute("client");
}else Toast.makeText(this, "Please enter your password", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(this, "Please enter your email address", Toast.LENGTH_SHORT).show();
}
break;
case R.id.loginRegisterBtn:
showRegisterDialog();
break;
case R.id.loginForgotPassBtn:
showLostPasswordDialog();
break;
}
}
class Login extends AsyncTask<String, String, String>{
ProgressDialog pDialog;
String s="";
int success=-1;
int error=0;
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog=new ProgressDialog(con);
pDialog.setMessage("Login is processing......");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
boolean driver=false;
String email="";
String password="";
String drloginEmail;
String drloginPassword;
String emailEt;
String passwordEt;
@Override
protected String doInBackground(String... st) {
if(st!=null && st[0].equals("driver")){
//email=drloginEmail.getText().toString();
email=this.drloginEmail.toString();
//password=drloginPassword.getText().toString();
password=this.drloginPassword.toString();
driver=true;
}else{
//email=emailEt.getText().toString();
email=this.emailEt.toString();
//password=passwordEt.getText().toString();
password=this.passwordEt.toString();
}
List<NameValuePair> params=new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("password", password));
if(driver)params.add(new BasicNameValuePair("category", "driver"));
else params.add(new BasicNameValuePair("category", "client"));
UserInfo.setEmail(email);
UserInfo.setPassword(password);
try {
JSONObject jobj=jparser.makeHttpRequest(loginURL, "POST", params);
success=jobj.getInt("success");
s=jobj.getString("message");
if(success==1){
JSONObject job=jobj.getJSONArray("info").getJSONObject(0);
UserInfo.setName(job.getString("name"));
UserInfo.setPhonenumber(job.getString("number"));
UserInfo.setId(job.getString("id"));
}
} catch (JSONException e) {
// e.printStackTrace();
error=1;
}catch(Exception e){
error=1;
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pDialog.dismiss();
if(error==1){
if(Util.isConnectingToInternet(con)){
Toast.makeText(con, "Server is down, Please try again later", Toast.LENGTH_SHORT).show();
}else
Util.showNoInternetDialog(con);
return;
}
if(success==0){
Toast.makeText(con, s, Toast.LENGTH_LONG).show();
}else if(success==1){
/*GetUserData data=new GetUserData();
data.execute();*/
SharedPreferences.Editor edit=sh.edit();
edit.putString("loginemail", email);
edit.putString("loginpass", password);
edit.putBoolean("type", driver);
edit.commit();
Intent i=new Intent(con, DriverPositionActivity.class);
if(driver)
i=new Intent(con, DriverActivity.class);
startActivity(i);
Toast.makeText(con, s, Toast.LENGTH_SHORT).show();
finish();
}
}
}
}
This is what you have done inside doInBackground 这是您在doInBackground内部所做的
if(st!=null && st[0].equals("driver")){
//email=drloginEmail.getText().toString();
email=this.drloginEmail.toString();
//password=drloginPassword.getText().toString();
password=this.drloginPassword.toString();
driver=true;
}else{
//email=emailEt.getText().toString();
email=this.emailEt.toString();
//password=passwordEt.getText().toString();
password=this.passwordEt.toString();
}
here inside login async class you have not initilize variables named as drloginEmail,passwordEt and you are fetching data from that may be this is a issue. 在登录异步类中,您没有初始化名为drloginEmail,passwordEt的变量,并且正在从中获取数据,这可能是个问题。 Please initilize these variables with the values getting from corresponding EditText's.
请使用从相应EditText获得的值来初始化这些变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.