Tôi muốn có nút Hộp kiểm để Nhớ Id người dùng và Mật khẩu. Bất cứ ai có thể xin vui lòng hướng dẫn tôi đi đúng hướng như thế nào để làm cho nó bắt đầu?Thêm hộp kiểm "Nhớ thông tin đăng nhập của tôi"
Trả lời
tôi chỉ xây dựng này vào ứng dụng của tôi, đây là các mã cơ bản và một số giải thích:
Về cơ bản chìa khóa ở đây là SharedPreferences. Bạn sẽ thiết lập một đối tượng SharedPreferences và lưu trữ tên người dùng và mật khẩu của bạn sau khi người dùng đã nhập chúng. Sau đó, khi họ chạy lại ứng dụng, các tùy chọn sẽ lưu trữ dữ liệu của họ và sau đó sẽ điền lại các trường đăng nhập.
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();
}
}
Phương pháp này ở cuối, doSomethingElse() là giữ chỗ của bạn để đi đến bước tiếp theo cho ứng dụng của bạn. Phương thức doSomethingElse() của tôi chỉ cần tải một hoạt động khác.
Đây là một tập tin xml cơ bản cho trang đăng nhập:
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>
QUAN TRỌNG: Bạn có thể sẽ muốn mã hóa mật khẩu trước khi lưu trữ nó trong SharedPreferences. Thông tin chi tiết vượt quá phạm vi của câu hỏi này, nhưng đây là mã tôi đã sử dụng để làm điều đó: http://www.androidsnippets.com/encryptdecrypt-strings. Bạn sẽ phải đưa ra một số loại lược đồ chính quá.
Mã này đã được thử nghiệm trên Android 2.1, SDK 7. Hãy cho tôi biết cách thức hoạt động của bạn.
David
Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn David! tôi mất khoảng 40 phút để hiểu. Tôi đã nhận được bit và chạy ngay bây giờ :) –
Hoạt động hoàn hảo! Cảm ơn .. – TharakaNirmana
tôi chỉ cần bật một số mã cho ứng dụng của tôi, làm việc tốt! – Bachask8
- 1. Thông tin đăng nhập API PayPal cho hộp cát
- 2. Kiểm tra thông tin đăng nhập từ xa và kiểm tra người dùng đã đăng nhập
- 3. Đăng nhập Android trong ứng dụng của tôi bằng thông tin đăng nhập google
- 4. Cách thêm thông tin đăng nhập facebook vào trang web của riêng tôi?
- 5. Làm cách nào để triển khai chức năng 'Nhớ thông tin đăng nhập của tôi' trong Hoạt động trên Android?
- 6. pastebinit cách đăng thông tin đăng nhập bằng thông tin đăng nhập?
- 7. Máy ứng dụng của Google - Cách nhớ thông tin đăng nhập của người dùng?
- 8. HttpClient.GetAsync với thông tin đăng nhập mạng
- 9. clojure oauth và thông tin đăng nhập
- 10. Cách thích hợp để sử dụng chức năng "Nhớ thông tin đăng nhập của tôi" trong PHP
- 11. Nơi Jenkins lưu trữ thông tin đăng nhập SVN
- 12. HttpWebRequest không chuyển Thông tin đăng nhập
- 13. Keychain Android cho thông tin đăng nhập của người dùng
- 14. OpenID + nhớ tôi/ở lại đăng nhập
- 15. Cách thiết kế API RESTful để kiểm tra thông tin đăng nhập của người dùng?
- 16. Ghi lại thông tin đăng nhập bằng Spring Security
- 17. Team Foundation Server yêu cầu thông tin đăng nhập
- 18. netTcpBinding không có thông tin đăng nhập Windows?
- 19. Lưu trữ thông tin đăng nhập Amazon của tôi trong C# Desktop App
- 20. Sự khác nhau giữa thông tin đăng nhập và thông tin đăng nhập trong SQL Server 2008 là gì?
- 21. Cách nhận thông tin đăng nhập API paypal?
- 22. Tôi cần thêm thông tin về HandleError
- 23. Kiểm tra xem thông tin đăng nhập SQL Server đã tồn tại chưa
- 24. Sử dụng đường dẫn UNC có thông tin đăng nhập
- 25. đăng ký django "nhớ tôi"
- 26. Hộp thoại đăng nhập cho ứng dụng khách của Windows
- 27. Gửi thông tin đăng nhập thay đổi Subversion Via Hudson
- 28. Tại sao github cứ hỏi tôi về thông tin đăng nhập?
- 29. Đăng trong OAuth bằng thông tin đăng nhập của khách hàng với Người quản lý cửa
- 30. Đăng nhập Facebook dưới dạng bổ sung cho thông tin đăng nhập hiện tại?
Bạn đã xây dựng chức năng đăng nhập hoàn chỉnh ngoại trừ chức năng ghi nhớ tôi? – WarrenFaith