Kullanıcı Kimliği ve Şifreyi Hatırlamak için bir Onay Kutusu düğmesine sahip olmak isterim. Başlamak için nasıl doğru yönde bana yol gösterebilir? "Beni Hatırla" onay kutusunu işaretleyin
Temelde Burada anahtar SharedPreferences: Ben sadece benim app içine bu yerleşikcevap
, burada temel kod ve bazı açıklama. Bir SharedPreferences nesnesi ayarlarsınız ve kullanıcı adınızı girdikten sonra kullanıcı adınızı ve şifrenizi kaydedersiniz. Daha sonra, uygulamayı tekrar çalıştırdıklarında, tercihler verilerin saklanacağını ve daha sonra oturum açma alanlarını yeniden oluşturacaktır.
LoginActivity.java
sonundapackage 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();
}
}
yöntem doSomethingElse() uygulamanız için bir sonraki adıma geçmek için tutucudur. DoSomethingElse() yöntemim başka bir etkinliği basitçe yükler.
<?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>
ÖNEMLİ
login.xml:
İşte giriş sayfası için temel bir xml dosyası var olasılıkla SharedPreferences içinde saklamadan önce şifresini şifrelemek isteyeceksiniz. Bunun için ayrıntılar bu sorunun kapsamı dışındadır, ancak burada yaptığım kod: http://www.androidsnippets.com/encryptdecrypt-strings. Bir çeşit anahtar şema da bulmalısın.
Bu kod Android 2.1, SDK 7 üzerinde test edilmiştir. Size nasıl çalıştığını bildirin.
David
Yardımlarınız için çok teşekkür ederim David! Anlamak için yaklaşık 40 dakika sürdü. Ben şimdi biraz var ve koşuyorum :) –
Mükemmel çalışır! Teşekkürler .. – TharakaNirmana
Sadece benim app için bazı kod toke, iyi çalıştı! – Bachask8
- 1. knockout.js onay kutusunu işaretleyin ve onay kutusunu işaretleyin
- 2. React Redux onay kutusunu işaretleyin onay kutusunu işaretleyin
- 3. JQuery, yalnızca kontrol edilmişse onay kutusunu işaretleyin
- 4. .NET ToolStripMenüYüksek kontrastta görünmez onay kutusunu işaretleyin
- 5. node.js'de taranan bir görüntüden onay kutusunu işaretleyin
- 6. Tablo görünümü hücresindeki onay kutusunu işaretleyin
- 7. Android Listeye tıklayınSil kontrolleri onay kutusunu işaretleyin
- 8. django-kaydı "Beni hatırla"
- 9. Beni hatırla PHP çalışmıyor
- 10. Tek bir tıklama ile tüm onay kutularını işaretleyin onay kutusunu işaretleyin C#
- 11. jQuery onay kutusunu gönder onay kutusuna basın
- 12. Varsayılan değer nasıl ayarlanır? Onay kutusunu işaretleyin REACT js
- 13. excel'e dışa aktarma mvc kullanarak dize yerine onay kutusunu işaretleyin.
- 14. Kullanıcı formu (Coldfusion) formunu (Coldfusion) aldığında onay kutusunu işaretleyin (Coldfusion)
- 15. Android'de bir olay nasıl alınır onay kutusunu işaretleyin?
- 16. Reaktif formlarla doğru/yanlış yerine değer onay kutusunu işaretleyin
- 17. "Beni hatırla" onaysız Entegrasyon Testi Checkbox
- 18. Laravel 4 Beni hatırla zaman aşımına uğrat
- 19. Görünürlük gizliliğini kaybettikten sonra onay kutusunu değiştiremiyorum
- 20. Onay Kutusunu Sağa Hizala
- 21. check_box_tag default Beni hatırlamak için kontrol edildi
- 22. "Beni Hatırla" jquery çerezlerini kullanarak uygulamak mümkün mü?
- 23. Yay Güvenliği: 'Beni hatırla' programlı olarak nasıl temizlenir?
- 24. Espresso ile onay kutusunu tıklayamıyorum
- 25. CouchDB Futon'daki Onay Kutusunu Azalt
- 26. ZF2 bir onay kutusu işaretlendi seçeneği işaretleyin
- 27. Tkinter - Tıklatıldıysa onay kutularını işaretleyin ve tıklattıysa
- 28. Aynı tarihte tabloyu aramak ve td'ye eklemek için onay kutusunu işaretleyin
- 29. React-Bootstrap onClick tetikleyicileri (?) Birikir ve birçok kez onay kutusunu işaretleyin
- 30. jQuery onay kutusundaki güncelleme onay kutusunu değiştirme olayını tetiklemiyor
Zaten işlevini hatırla dışında, tam oturum açma işlevini zaten oluşturdunuz mu? – WarrenFaith