Friday 12 January 2018

Getting data from the server and loading new screen using Android

itemprop="text">

I am using following code to get data
from the Server and if the value from server is GEEK then it
will load to next class, but new view is not loading. Can you say what is the
problem?




public void
onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);


login = (Button)
findViewById(R.id.login);
username = (EditText)
findViewById(R.id.username);
password = (EditText)
findViewById(R.id.password);

login.setOnClickListener(new
OnClickListener() {

@Override
public void onClick(View
v) {
String Re;
String mUsername =
username.getText().toString();

String mPassword =
password.getText().toString();

Re=tryLogin(mUsername,
mPassword);

if(Re=="GEEK")
{
Intent i = new
Intent();

i.setClassName(v.getContext(),"com.httplogin.MainScreen");

startActivity(i);


}
}

});
}

protected String tryLogin(String mUsername,
String mPassword)
{
HttpURLConnection connection;

OutputStreamWriter request = null;


URL url = null;

String response = null;
String parameters =
"username="+mUsername+"&password="+mPassword;

try

{
url = new URL("http://serverspace/script.php");
connection =
(HttpURLConnection) url.openConnection();

connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");


connection.setRequestMethod("POST");

request = new
OutputStreamWriter(connection.getOutputStream());

request.write(parameters);
request.flush();
request.close();

String line = "";
InputStreamReader isr = new
InputStreamReader(connection.getInputStream());
BufferedReader reader = new
BufferedReader(isr);
StringBuilder sb = new
StringBuilder();

while ((line = reader.readLine()) !=
null)
{
sb.append(line + "\n");
}
//
Response from server after login process will be stored in response variable.

response = sb.toString();

isr.close();

reader.close();



}

catch(IOException e)
{

Toast.makeText(this,e.toString(),0).show();
}
return
response;
}
}



Answer




Refer this code.............., Use trim
function because it eliminates the space in a
String..



public class HttpLogin
extends Activity {
/** Called when the activity is first created.
*/
private Button login;
private EditText username,
password;

@Override
public void onCreate(Bundle
savedInstanceState) {


super.onCreate(savedInstanceState);

setContentView(R.layout.main);

login = (Button)
findViewById(R.id.login);
username = (EditText)
findViewById(R.id.username);
password = (EditText)
findViewById(R.id.password);

login.setOnClickListener(new
OnClickListener() {

@Override

public void
onClick(View v) {
String Re;
String mUsername =
username.getText().toString();
String mPassword =
password.getText().toString();

Re=tryLogin(mUsername,
mPassword);
Log.d(" Check ","Here");
Log.d("Re",Re);

String temp_check=Re.trim();

if(temp_check.equals("GEEK"))

{
Intent i = new
Intent();

i.setClassName(v.getContext(),"com.httplogin.MainScreen");

startActivity(i);

}
else
{

//Toast.makeText(HttpLogin.this,"MAX Returned",0).show();

displayAlert(Re);

// Intent i = new Intent();
//
i.setClassName(v.getContext(),"com.san.MainScreen");
//
startActivity(i);
}
}
});

}

protected String tryLogin(String mUsername, String
mPassword)
{

Log.d(" TryLoginCheck
","Here");
HttpURLConnection connection;
OutputStreamWriter
request = null;

URL url = null;
String response =
null;
String temp=null;
String parameters =
"username="+mUsername+"&password="+mPassword;

System.out.println("UserName"+mUsername+"\n"+"password"+mPassword);

Log.d("Parameters",parameters);

try

{

url = new URL("http://serverspace/script.php");

connection = (HttpURLConnection) url.openConnection();

connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.setRequestMethod("POST");


request = new
OutputStreamWriter(connection.getOutputStream());


request.write(parameters);
request.flush();
request.close();

String line = "";
InputStreamReader isr = new
InputStreamReader(connection.getInputStream());
BufferedReader reader = new
BufferedReader(isr);
StringBuilder sb = new StringBuilder();
while
((line = reader.readLine()) != null)
{



sb.append(line + "\n");
}
temp=sb.toString();

Log.d("Temp",temp);
// Response from server after login process will be
stored in response variable.
response = sb.toString();

Log.d("Response",response);
Log.d("Sb Value",sb.toString());

isr.close();
reader.close();




}
catch(IOException e)
{

Toast.makeText(this,e.toString(),0).show();
}
//
Log.d("Response",response);
return response;

}

public void displayAlert(String Re)
{
new
AlertDialog.Builder(this).setMessage(Re)
.setTitle("Returned Value")

.setCancelable(true)
.setNeutralButton(android.R.string.ok, new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface
dialog, int whichButton){
finish();
}
})


.show();

}
}

No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...