有人可以幫助我建議一些好的教程,我可以開始。 我想用儀表板和登錄屏幕構建一個簡單的應用程序。首次要求用戶登錄屏幕。登錄檢查通過對遠程PHP腳本的POST調用來執行。一旦用戶登錄,他/她應該被重定向到儀表板。一旦用戶關閉並重新打開應用程序,他應該重定向到登錄屏幕。Android應用程序登錄
我知道如何創建表單以及如何發佈,在基於用戶角色切換佈局以及如何導入/擴展類方面需要幫助,例如我更喜歡單獨登錄(活動)類。但這個登錄類需要進口到主井(主要應該擴大活動)
有人可以幫助我建議一些好的教程,我可以開始。 我想用儀表板和登錄屏幕構建一個簡單的應用程序。首次要求用戶登錄屏幕。登錄檢查通過對遠程PHP腳本的POST調用來執行。一旦用戶登錄,他/她應該被重定向到儀表板。一旦用戶關閉並重新打開應用程序,他應該重定向到登錄屏幕。Android應用程序登錄
我知道如何創建表單以及如何發佈,在基於用戶角色切換佈局以及如何導入/擴展類方面需要幫助,例如我更喜歡單獨登錄(活動)類。但這個登錄類需要進口到主井(主要應該擴大活動)
不知道我完全理解你的問題,但是當它涉及到開始和結束活動本教程是非常好的:
http://developerlife.com/tutorials/?p=302
如果你想當您在解決方案的背景中返回應用程序後,用戶將被重定向到登錄屏幕,以便捕獲主活動中的onStop()事件。用戶離開應用程序時會觸發此事件。
如果你解釋這一行「但這個登錄類需要導入到主」進一步我可能也能夠回答這個問題。
,如果你知道一點的PHP,MySQL和可以創建一個PHP文件來驗證登錄憑證,那麼這將是有益的:
我已經創建了一個UserApp SDK是照顧大多數用戶的認證,如登錄,註冊,會話,用戶配置文件,社會登錄等
https://github.com/userapp-io/userapp-android
因爲它是開源的,你可以AFTE修改滿足你自己的需求並連接到你自己的服務。
登錄表單將被放置一個擴展AuthFragment
,這樣的片段中:
public class LoginFragment extends AuthFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_signup, container, false);
// Setup the login form with bindings to UserApp
super.setupLoginForm(view, R.id.login, R.id.password, R.id.login_button);
return view;
}
@Override
public Boolean onLoginStart(String login, String password, Boolean isSocialLogin) {
// Show loader when waiting for server
getView().findViewById(R.id.login_form).setVisibility(View.GONE);
getView().findViewById(R.id.login_status).setVisibility(View.VISIBLE);
// Return true to complete the login
return true;
}
@Override
public void onLoginCompleted(Boolean authenticated, Exception exception) {
// Hide the loader
getView().findViewById(R.id.login_form).setVisibility(View.VISIBLE);
getView().findViewById(R.id.login_status).setVisibility(View.GONE);
if (exception != null) {
// Show an error message
((TextView) getView().findViewById(R.id.error_text)).setText(exception.getMessage());
} else {
// Clear the message
((TextView) getView().findViewById(R.id.error_text)).setText("");
}
}
}
而對於LoginFragment
佈局會是這個樣子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Progress -->
<LinearLayout
android:id="@+id/login_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="gone" >
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp" />
<TextView
android:id="@+id/login_status_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif-light"
android:text="@string/login_progress_signing_in"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<!-- Login form -->
<ScrollView
android:id="@+id/login_form"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<EditText
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:hint="@string/username"
android:maxLines="1"
android:singleLine="true" />
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/password"
android:maxLines="1"
android:singleLine="true" />
<Button
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:paddingLeft="32dp"
android:paddingRight="32dp"
android:text="@string/login" />
<Button
android:id="@+id/facebook_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:paddingLeft="32dp"
android:paddingRight="32dp"
android:text="@string/facebook_login" />
<Button
android:id="@+id/show_signup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:paddingLeft="32dp"
android:paddingRight="32dp"
android:text="@string/signup" />
<TextView
android:id="@+id/error_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</ScrollView>
</LinearLayout>
然後將其添加到您的主要活動的佈局,以及另一個包含您的「儀表板」的片段:
<RelativeLayout ... >
<fragment
android:id="@+id/loginFragment"
android:name="com.example.demo.LoginFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
...
</RelativeLayout>
這只是簡單地展示了圖書館如何使用。有關如何使用它的更多信息,請參閱文檔。也看看GitHub上的演示應用程序。
正如在接受的答案中提到的那樣;註銷當應用程序被關閉的用戶,偵聽onStop()
事件在您的主要活動,並呼籲session.logout()
,像這樣:
UserApp.Session session;
session.logout();
如果你想從驗證創建簡單的登錄[programmingTip] [1]
[1]:http://www.programmingtip.com/create-simple-login-form-with-validation-android-2/在這個網站的簡要說明與驗證的登錄頁面。
只是我的意思是登錄類需要寫成一個單獨的文件 – 2010-11-17 10:07:56
android api的整個想法是將所有視圖分隔成不同的活動。因此,對於你的應用程序,你可能希望登錄屏幕作爲一個類(擴展Activity類)和主屏幕作爲另一個類(也擴展了Activity類)。登錄成功後,您可以使用startActivity()或startActivityForResult()從登錄活動中啓動主要活動,如developerlife教程中所述。 – 2010-11-17 10:22:45