本文介绍了记得Android应用程序密码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经用我的Android application.Here通过SOAP Web服务一个MySQL连接我想添加一个记住密码字段开发一个登录表单(用户名,密码和提交按钮)。
我在该活动的XML资源写成这样code:
I have developed a login form (username,password and submit button) using a MySQL connection through soap webservices in my android application.Here I wish to add a "remember password field".I have written this code in the XML resource for the activity:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/tf_userName"
android:layout_width="194dp"
android:layout_height="wrap_content"
android:layout_x="106dp"
android:layout_y="80dp" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="23dp"
android:layout_y="93dp"
android:text="User name" />
<EditText
android:id="@+id/tf_password"
android:layout_width="189dp"
android:layout_height="wrap_content"
android:layout_x="108dp"
android:layout_y="161dp"
android:inputType="textPassword" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="23dp"
android:layout_y="176dp"
android:text="Password" />
<CheckBox android:layout_below="@+id/passwordview"
android:layout_width="wrap_content" android:text="Remember Password!"
android:layout_height="wrap_content" android:id="@+id/rempasswordcheckbox"
android:layout_x="23dp"
android:layout_y="200dp" />
<Button
android:id="@+id/btn_login"
android:layout_width="106dp"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="273dp"
android:text="Login" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="350dp"
android:text="Forget My password ?: Click here" />
<Button
android:id="@+id/btn_reg"
android:layout_width="106dp"
android:layout_height="wrap_content"
android:layout_x="175dp"
android:layout_y="273dp"
android:text="Register" />
<Button
android:id="@+id/btn_logout"
android:layout_width="106dp"
android:layout_height="wrap_content"
android:layout_x="215dp"
android:layout_y="25dp"
android:text="Logout" />
<TextView
android:id="@+id/tv_status"
android:layout_width="151dp"
android:layout_height="38dp"
android:layout_x="26dp"
android:layout_y="234dp"
android:textAppearance="?android:attr/textAppearanceMedium" />
我Login.java文件是:
my Login.java file is:
package com.truebranches;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Login extends Activity {
private final String NAMESPACE = "http://ws.userlogin.com";
private final String URL = "http://192.168.1.168:8085/Login/services/Login?wsdl";
private final String SOAP_ACTION = "http://ws.userlogin.com/authentication";
private final String METHOD_NAME = "authentication";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Button register = (Button) findViewById(R.id.btn_reg);
register.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Switching to Register screen
Intent i = new Intent(getApplicationContext(), Register.class);
startActivity(i);
}
});
Button logout = (Button) findViewById(R.id.btn_logout);
logout.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Switching to Register screen
Intent i = new Intent(getApplicationContext(), Login.class);
startActivity(i);
}
});
TextView forgetpassword = (TextView) findViewById(R.id.TextView03);
forgetpassword.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Switching to Register screen
Intent i = new Intent(getApplicationContext(), ForgetPassword.class);
startActivity(i);
}
});
Button login = (Button) findViewById(R.id.btn_login);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
loginAction();
}
});
}
private void loginAction(){
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
EditText userName = (EditText) findViewById(R.id.tf_userName);
String user_Name = userName.getText().toString();
EditText userPassword = (EditText) findViewById(R.id.tf_password);
String user_Password = userPassword.getText().toString();
//Pass value for userName variable of the web service
PropertyInfo unameProp =new PropertyInfo();
unameProp.setName("userName");//Define the variable name in the web service method
unameProp.setValue(user_Name);//set value for userName variable
unameProp.setType(String.class);//Define the type of the variable
request.addProperty(unameProp);//Pass properties to the variable
//Pass value for Password variable of the web service
PropertyInfo passwordProp =new PropertyInfo();
passwordProp.setName("password");
passwordProp.setValue(user_Password);
passwordProp.setType(String.class);
request.addProperty(passwordProp);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
String status = response.toString();
TextView result = (TextView) findViewById(R.id.tv_status);
result.setText(response.toString());
if(status.equals("Success!"))
{
Intent intent = new Intent(Login.this,HomePage.class);
intent.putExtra("username",userName.getText().toString());
startActivity(intent);
}
else
{
Intent i = new Intent(getApplicationContext(), Login.class);
startActivity(i);
}
}
catch(Exception e){
}
}
}
但我怎么创建Java code?我似乎无法能够做到这一点。请指引我。
But how do I create the Java code? I can't seem to be able to do this. Please guide me.
推荐答案
编辑--------------
EDIT--------------
import....
import android.widget.CheckBox; // <--- Add
import android.content.SharedPreferences; // <--- Add
import android.widget.EditText; // <--- Add
.
.
.
.
private static final String SPF_NAME = "vidslogin"; // <--- Add this
private static final String USERNAME = "username"; // <--- To save username
private static final String PASSWORD = "password"; // <--- To save password
CheckBox chkRememberMe; // <--- You even not taken CheckBox, SILLY WORKER
EditText etUserName, etPassword; // <--- You even not taken CheckBox, SILLY WORKER
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
chkRememberMe = (CheckBox) findViewById(R.id.rempasswordcheckbox); // <--- Instantiate CheckBox...
etUserName = (EditText) findViewById(R.id.tf_userName); // <--- Instantiate EditText...
etPassword = (EditText) findViewById(R.id.tf_password); // <--- Instantiate EditText...
// ADD THIS TO READ SAVED username & password NEXT-TIME OPENING Application
SharedPreferences loginPreferences = getSharedPreferences(SPF_NAME,
Context.MODE_PRIVATE);
etUserName.setText(loginPreferences.getString(USERNAME, ""));
etPassword.setText(loginPreferences.getString(PASSWORD, ""));
.
.
.
.
.
.
private void loginAction() {
.
.
.
.
if (status.equals("Success!"))
{
// ADD to save and read next time
String strUserName = etUserName.getText().toString().trim();
String strPassword = etPassword.getText().toString().trim();
if (null == strUserName || strUserName.length() == 0)
{
// showToast("Enter Your Name");
etUserName.requestFocus();
} else if (null == strPassword || strPassword.length() == 0)
{
// showToast("Enter Your Password");
etPassword.requestFocus();
} else
{
if (chkRememberMe.isChecked())
{
SharedPreferences loginPreferences = getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
loginPreferences.edit().putString(USERNAME, strUserName).putString(PASSWORD, strPassword).commit();
} else
{
SharedPreferences loginPreferences = getSharedPreferences(SPF_NAME, Context.MODE_PRIVATE);
loginPreferences.edit().clear().commit();
}
// OVER
Intent intent = new Intent(Login.this, HomePage.class);
intent.putExtra("username", userName.getText().toString());
startActivity(intent);
}
如果YourCheckBox发现的器isChecked()==真
在登录按钮的时间的onClick
只要保存为共享preference用户名和密码。
Declare PREFRENCES_NAME = "Name You Like"
Save Data:-
SharedPreferences settings = getSharedPreferences(PREFRENCES_NAME, 0);
settings.edit().putString("name", strName).putString("pwd", strPass).commit();
Retrieve Data:-
SharedPreferences settings = getSharedPreferences(PREFRENCES_NAME, 0);
String name = settings.getString("name", "");
String password = settings.getString("pwd", "");
Clear Data:-
SharedPreferences settings = getSharedPreferences(
PREFRENCES_NAME, Context.MODE_PRIVATE);
settings.edit().clear().commit();
这篇关于记得Android应用程序密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!