ninjasenses
Newbie
Hey guys...I have some weird things going on with my android app. The first thing is a simple logic problem. I have some thing evaluating to true but it is not being detected correctly...here is my code:
The problem here is at the line with if (settings.contains(AUTHENTICATED))...it is returning true when I am debugging, but it keeps going to the else{return false} for some reason. I don't get it?
The second problem is when Im trying to store text from an EditText control(ie:edittext value = android.widget.EditText@43bca3d8a). I am trying to store a simple username and password a person enters, but it keeps storing that weird value. When I evalute username1.getText().toString()...it grabs the correct text...but when I retrieve it I get the weird value. here is my code:
any help would be greatly appreciated. Thanks
Code:
package com.cutter.giddyup;
import java.util.Map;
import android.R.bool;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Home extends Activity {
public static final String PREFS = "Preferences";
private String AUTHENTICATED="";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button Setup = (Button)findViewById(R.id.setup);
//Check to see if user is authenticated
if(isAuthenticated()){
Setup.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent SetupIntent = new Intent(Home.this,Setup.class);
startActivity(SetupIntent);
}
});
}
else{
Intent SetupIntent = new Intent(Home.this,Setup.class);
startActivity(SetupIntent);
}
}
public boolean isAuthenticated(){
SharedPreferences settings = getSharedPreferences(PREFS, 0);
if (settings.contains(AUTHENTICATED)) {
String secret = settings.getString(AUTHENTICATED, "");
if(!(secret.equals(""))) {
return true;
}
else{
return false;
}
}
else{
return false;
}
}
}
The problem here is at the line with if (settings.contains(AUTHENTICATED))...it is returning true when I am debugging, but it keeps going to the else{return false} for some reason. I don't get it?
The second problem is when Im trying to store text from an EditText control(ie:edittext value = android.widget.EditText@43bca3d8a). I am trying to store a simple username and password a person enters, but it keeps storing that weird value. When I evalute username1.getText().toString()...it grabs the correct text...but when I retrieve it I get the weird value. here is my code:
Code:
package com.cutter.giddyup;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.http.*;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
//apache
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpParams;
public class Setup extends Activity{
public static final String PREFS = "Preferences";
private String AUTHENTICATED="";
private String USER="";
private String PASSWORD="";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup);
EditText username = (EditText)findViewById(R.id.username);
EditText password = (EditText)findViewById(R.id.password);
SharedPreferences settings = getSharedPreferences(PREFS,
0);
String un = settings.getString(USER, "").toString();
String pw = settings.getString(PASSWORD, "").toString();
username.setText(un);
password.setText(pw);
Button Save = (Button)findViewById(R.id.saveLogin);
Save.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
postData();
//write to prefs if authenticated
EditText username1 = (EditText)findViewById(R.id.username);
EditText password2 = (EditText)findViewById(R.id.password);
AUTHENTICATED="true";
SharedPreferences settings = getSharedPreferences(PREFS,
0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(AUTHENTICATED, "true");
editor.putString(USER, username1.getText().toString());
editor.putString(PASSWORD, password2.getText().toString());
editor.commit();
}
});
Button Clear = (Button)findViewById(R.id.clearLogin);
Clear.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
clearData();
}
});
}
public void postData() {
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://localhost/Android/Login.ashx");
try {
EditText username = (EditText)findViewById(R.id.username);
EditText password = (EditText)findViewById(R.id.password);
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("un", username.toString()));
nameValuePairs.add(new BasicNameValuePair("pw", password.toString()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
public void clearData(){
EditText username = (EditText)findViewById(R.id.username);
EditText password = (EditText)findViewById(R.id.password);
username.setText("");
password.setText("");
}
}
any help would be greatly appreciated. Thanks