「ユーザーIDとパスワードを記憶させる」チェックボックスボタンがあります。誰もそれを開始する方法について正しい方向に私を導くことができますか?「私を覚えています」チェックボックスを追加してください
基本的にここで重要なのはSharedPreferencesです:
「ユーザーIDとパスワードを記憶させる」チェックボックスボタンがあります。誰もそれを開始する方法について正しい方向に私を導くことができますか?「私を覚えています」チェックボックスを追加してください
基本的にここで重要なのはSharedPreferencesです:
私はちょうど私のアプリにこれを建て、ここでは基本的なコードといくつかの説明があります。 SharedPreferencesオブジェクトを設定し、ユーザが入力した後にユーザ名とパスワードを保存します。その後、アプリケーションを再度実行すると、プリファレンスにはデータが保存され、ログインフィールドが再入力されます。最後に
LoginActivity.java
package com.realsimpleapps.LoginTesting;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
public class LoginActivity extends Activity implements OnClickListener {
private String username,password;
private Button ok;
private EditText editTextUsername,editTextPassword;
private CheckBox saveLoginCheckBox;
private SharedPreferences loginPreferences;
private SharedPreferences.Editor loginPrefsEditor;
private Boolean saveLogin;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
ok = (Button)findViewById(R.id.buttonLogin);
ok.setOnClickListener(this);
editTextUsername = (EditText)findViewById(R.id.editTextUsername);
editTextPassword = (EditText)findViewById(R.id.editTextPassword);
saveLoginCheckBox = (CheckBox)findViewById(R.id.saveLoginCheckBox);
loginPreferences = getSharedPreferences("loginPrefs", MODE_PRIVATE);
loginPrefsEditor = loginPreferences.edit();
saveLogin = loginPreferences.getBoolean("saveLogin", false);
if (saveLogin == true) {
editTextUsername.setText(loginPreferences.getString("username", ""));
editTextPassword.setText(loginPreferences.getString("password", ""));
saveLoginCheckBox.setChecked(true);
}
}
public void onClick(View view) {
if (view == ok) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextUsername.getWindowToken(), 0);
username = editTextUsername.getText().toString();
password = editTextPassword.getText().toString();
if (saveLoginCheckBox.isChecked()) {
loginPrefsEditor.putBoolean("saveLogin", true);
loginPrefsEditor.putString("username", username);
loginPrefsEditor.putString("password", password);
loginPrefsEditor.commit();
} else {
loginPrefsEditor.clear();
loginPrefsEditor.commit();
}
doSomethingElse();
}
}
public void doSomethingElse() {
startActivity(new Intent(LoginActivity.this, MainActivity.class));
LoginActivity.this.finish();
}
}
方法、doSomethingElse()は、アプリケーションのための次のステップに進むためにあなたのプレースホルダです。私のdoSomethingElse()メソッドは単に別のアクティビティをロードします。
ここでは、ログインページのための基本的なXMLファイルです:
login.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000"
android:padding="10dp" >
<EditText
android:id="@+id/editTextUsername"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1"
android:hint="Username"
android:inputType="textNoSuggestions"
android:imeOptions="actionNext" />
<EditText
android:id="@+id/editTextPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextUsername"
android:hint="Password"
android:inputType="textPassword"
android:imeOptions="actionDone" />
<CheckBox
android:id="@+id/saveLoginCheckBox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editTextPassword"
android:text="Save Login?"
android:textColor="#FFF" />
<Button
android:id="@+id/buttonLogin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/saveLoginCheckBox"
android:layout_marginTop="40dp"
android:text="Login" />
</RelativeLayout>
重要:あなたはおそらくSharedPreferencesに格納する前にパスワードを暗号化したいと思います。その詳細はこの質問の範囲を超えていますが、私が以前に使ったコードはhttp://www.androidsnippets.com/encryptdecrypt-stringsです。何らかの種類のキースキーマも考えなければなりません。
このコードはAndroid 2.1、SDK 7でテストされています。どのように動作するのか教えてください。
デビッド
David Davidさんのご協力ありがとうございました!理解するのに約40分かかりました。私はそのビットを稼いで今稼働しています:) –
完璧に動作します!ありがとう.. – TharakaNirmana
私はちょうど私のアプリのためのいくつかのコードをトーキング、正常に働いた! – Bachask8
あなたはすでに私を覚えていた機能を除いて、完全なログイン機能を構築することがありますか? – WarrenFaith