1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| package com.instropy.androiddexamples.net;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import com.instropy.androiddexamples.net.RestJsonClient;
// implements OnClickListener so we don´t have to create a nested class << #ugly
public class HelloAndroid extends Activity implements OnClickListener {
private static final int SERVER_PORT = 80;
private static final String DEB_TAG = "Json_Android";
private String SERVER_HOST="instropy.com";
public static final String PREFS_NAME = "HelloAndroidPREFS";
private SharedPreferences settings;
private ProgressDialog progress;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(icicle);
// Restore preferences
settings = getSharedPreferences(PREFS_NAME, 0);
// load up the layout
setContentView(R.layout.main);
// get the button resource in the xml file and assign it to a local variable of type Button
Button login = (Button)findViewById(R.id.login_button);
Log.i(DEB_TAG,"onCreate");
login.setOnClickListener(this);
setUserNameText(settings.getString("Login", ""));
setPasswordText(settings.getString("Password", ""));
}
public void setUserNameText(String $username){
EditText usernameEditText = (EditText) findViewById(R.id.txt_username);
usernameEditText.setText($username);
}
public void setPasswordText(String $username){
EditText passwordEditText = (EditText) findViewById(R.id.txt_password);
passwordEditText.setText($username);
}
/*
* (non-Javadoc)
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
public void onClick(View v) {
//Handle based on which view was clicked.
Log.i(DEB_TAG+" onClick ","onClick");
// this gets the resources in the xml file
//and assigns it to a local variable of type EditText
EditText usernameEditText = (EditText) findViewById(R.id.txt_username);
EditText passwordEditText = (EditText) findViewById(R.id.txt_password);
// the getText() gets the current value of the text box
// the toString() converts the value to String data type
// then assigns it to a variable of type String
String sUserName = usernameEditText.getText().toString();
String sPassword = passwordEditText.getText().toString();
//call the backend using Get parameters (discouraged but works good for this exampl <img src="http://www.instropy.com/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley"> )
String address = "http://"+SERVER_HOST+":"+SERVER_PORT+"/jbackend.php?action=login&Login="+sUserName+"&Password="+sPassword+"";
if(usernameEditText == null || passwordEditText == null){
// show some warning
}else{
// display the username and the password in string format
try {
showBusyCursor(true);
progress = ProgressDialog.show(this,
"Please wait...", "Login in process", true);
Log.i(DEB_TAG, "Username: " + sUserName + "nPassword: " + sPassword);
Log.i(DEB_TAG, "Requesting to "+address);
JSONObject json = RestJsonClient.connect(address);
} catch (JSONException e) {// L'ERREUR'
// TODO Auto-generated catch block
e.printStackTrace();
showBusyCursor(false);
}//end try
progress.dismiss();
SharedPreferences.Editor editor = settings.edit();
editor.putString("Login", sUserName);
editor.putString("Password", sPassword);
editor.commit();
showBusyCursor(false);
next();
}//end else
}//end OnClick
/*
*
*/
private void showBusyCursor(Boolean $show){
setProgressBarIndeterminateVisibility($show);
}
private void next(){
// you can call another activity by uncommenting the above lines
//Intent myIntent = new Intent( this.getBaseContext() , LoggedActivity.class);
//startActivityForResult(myIntent, 0);
}
} |
Partager