I am new to Android
development.
I'm trying to create a login with an AsyncTask
.
The issue I'm having is that I can't open a new Activity
on onPostExecute()
.
I don't know why, but my app won't run if the if(res=="valid")
in postdata. In the log
I can see only my response
and not my response2
.
Here's the code:
public class MainActivity extends Activity {
private EditText employeNum;
private EditText Id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
employeNum = (EditText) findViewById(R.id.editText1);
Id = (EditText) findViewById(R.id.editText2);
}
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public class MyAsyncTask extends AsyncTask<String, Integer, Double> {
// int loginVerified=0;
public boolean loginVerified = false;
public String res;
protected Double doInBackground(String... params) {
postData(params[0],params[1]);
return null;
}
protected void onPostExecute(boolean loginVerified){
if(loginVerified == true)
{
Intent menu = new Intent(getApplicationContext(),menu.class);
startActivity(menu);
finish();
}
}
public void postData(String a,String b) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://www.nir-levi.com/login/");
try {
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("user_email", a));
nameValuePair.add(new BasicNameValuePair("user_password", b));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
HttpResponse response = httpClient.execute(httpPost);
BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = null;
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
res = sb.toString();
if(res=="valid"){
Log.v("My Response2::",res);
loginVerified=true;
onPostExecute(loginVerified);
}
Log.v("My Response::",res);
public void login(View v) {
String num = employeNum.getText().toString();
String id = Id.getText().toString();
new MyAsyncTask().execute(num, id);
}