मैं उपयोगकर्ता आईडी और पासवर्ड याद रखने के लिए एक चेकबॉक्स बटन रखना चाहता हूं। क्या कोई मुझे सही दिशा में मार्गदर्शन कर सकता है कि इसे कैसे शुरू किया जाए?एक "मुझे याद रखें" चेकबॉक्स
असल कुंजी यहाँ SharedPreferences है:
मैं उपयोगकर्ता आईडी और पासवर्ड याद रखने के लिए एक चेकबॉक्स बटन रखना चाहता हूं। क्या कोई मुझे सही दिशा में मार्गदर्शन कर सकता है कि इसे कैसे शुरू किया जाए?एक "मुझे याद रखें" चेकबॉक्स
असल कुंजी यहाँ SharedPreferences है:
मैं बस अपना एप्लिकेशन में यह बनाया गया है, यहाँ बुनियादी कोड और कुछ स्पष्टीकरण है। आप एक SharePreferences ऑब्जेक्ट सेट अप करेंगे और उपयोगकर्ता ने उन्हें दर्ज करने के बाद अपना उपयोगकर्ता नाम और पासवर्ड स्टोर करेंगे। फिर, जब वे एप्लिकेशन को फिर से चलाते हैं, वरीयताओं का डेटा संग्रहित होगा और फिर लॉगिन फ़ील्ड को दोबारा बदल देगा।
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() विधि बस एक और गतिविधि लोड करता है।
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>
महत्वपूर्ण::
यहाँ प्रवेश पृष्ठ के लिए एक बुनियादी xml फ़ाइल है आप की संभावना SharedPreferences में भंडारण से पहले पासवर्ड एन्क्रिप्ट करना चाहते हैं। इसके लिए विवरण इस प्रश्न के दायरे से बाहर हैं, लेकिन यहां वह कोड है जो मैं करता था: http://www.androidsnippets.com/encryptdecrypt-strings। आपको किसी भी तरह की कुंजी स्कीमा के साथ भी आना होगा।
यह कोड एंड्रॉइड 2.1, एसडीके 7 पर परीक्षण किया गया है। मुझे बताएं कि यह आपके लिए कैसे काम करता है।
डेविड
आपकी सभी मदद डेविड के लिए बहुत बहुत धन्यवाद! मुझे समझने में लगभग 40 मिनट लग गए। मुझे वह बिट मिला और अब चल रहा है :) –
पूरी तरह से काम करता है! धन्यवाद .. – TharakaNirmana
मैं बस अपने ऐप के लिए कुछ कोड टक गया, ठीक काम किया! – Bachask8
आप पहले से ही मुझे याद कार्यक्षमता को छोड़कर पूरा लॉगिन समारोह का निर्माण किया है? – WarrenFaith