آموزش Login Screen در اندروید
آموزش Login Screen در اندروید
يك برنامه Login براي تأیید درستی اصلاعات شما براي ورود به برخي از برنامه هاي خاص است.شما ممكن است آن را در هنگام ورود به فيسبوك و تويتر و غيره ديده باشيد.
اين آموزش در مورد چگونگي ساخت يك صفحه Login و مديريت كردن امنيت برنامه زماني كه ديگران براي ورود به محيط شخصي شما تلاش مي كنند توضيح مي دهد.
ابتدا شما بايد دو تکست ویو ایجاد کنید که نام کاربری و پسوورد را از کاربر بخواهد.تکست ویو که برای پسوورد است باید Input Type از نوع Password داشته باشد که کدهای آن در زير آمده است.
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
دكمه اي با متن login تعريف كنيد و به آن قابلیت onClick را اضافه کنید. بعد از آن عملکرد ذکر شده را در فایل جاوا تعریف کنید:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="login"
android:text="@string/Login"
/>
در فايل جاوا در داخل متد onClick موضوع متن نام كاربري و رمز ورود در حال استفاده را در متد ()getText و ()toString بگيريد و آن را به عمل ()equals متصل كنيد.
EditText username = (EditText)findViewById(R.id.editText1);
EditText password = (EditText)findViewById(R.id.editText2);
public void login(View view){
if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
//correcct password
}else{
//wrong password
}
آخرين كاري كه بايد انجام دهيد اين است كه مكانيزم امنيتي بسازيد كه از تلاش هاي ناخواسته اجتناب شود. به اين منظور زمان آن را كاهش دهيد و وقتي كه زمان به 0 رسيد كليد لاگين غيرفعال مي شود.
int counter = 3;
counter--;
if(counter==0){
//disble the button, close the application e.t.c
}
مثال
در اينجا يك مثال برای برنامه Login وجود دارد كه برنامه پايه را مي سازد كه شما تنها يك بار فرصت ورود به برنامه را مي دهد .
براي آزمايش كردن اين مثال شما مي توانيد آن را بر روي وسايل واقعي و يا يك مقلد اجرا كنيد.
-
شما از اكليپس آي دي اي براي ساختن برنامه اندرويدي با نام لاگين اسكرين استفاده خواهيد كرد و آن را در پوشه كام. اگزمپل. لاگين اسكرين جاي خواهيد داد و از هدفمند بودن اس دي كي و گرد آوري آن با آخرين ورژن اندرويد به منظور استفاده از سطوح بالاتري از اي پي آي ها اطمينان حاصل كنيد.
- اصلاح src/MainActivity.java file به منظود افزودن كد هاي لازم
-
اصلاح the res/layout/activity_main به منظور افزودن تركيبات اكس ام ال به ترتيب
-
اصلاح res/values/string.xml به منظور افزودن تركيبات رديفي لازم
- برنامه را اجرا كنيد و يك وسيله اندرويدي اجرايي را انتخاب كنيد سپس برنامه را در آن نصب كنيد و نتيجه را باز بيني كنيد.
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class MainActivity extends Activity {
Button b1,b2;
EditText ed1,ed2;
TextView tx1;
int counter = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button)findViewById(R.id.button);
ed1=(EditText)findViewById(R.id.editText);
ed2=(EditText)findViewById(R.id.editText2);
b2=(Button)findViewById(R.id.button2);
tx1=(TextView)findViewById(R.id.textView3);
tx1.setVisibility(View.GONE);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ed1.getText().toString().equals("admin") &&
ed2.getText().toString().equals("admin")) {
Toast.makeText(getApplicationContext(), "Redirecting...",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplicationContext(), "Wrong Credentials",Toast.LENGTH_SHORT).show();
tx1.setVisibility(View.VISIBLE);
tx1.setBackgroundColor(Color.RED);
counter--;
tx1.setText(Integer.toString(counter));
if (counter == 0) {
b1.setEnabled(false);
}
}
}
});
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
در قسمت تغییرات فایل res/layout/activity_main.xml را می بینید:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:text="Login" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:hint="Enter Name"
android:focusable="true"
android:textColorHighlight="#ff7eff15"
android:textColorHint="#ffff25e6"
android:layout_marginTop="46dp"
android:layout_below="@+id/imageView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:ems="10"
android:id="@+id/editText2"
android:layout_below="@+id/editText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/editText"
android:layout_alignEnd="@+id/editText"
android:textColorHint="#ffff299f"
android:hint="Password" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Attempts Left:"
android:id="@+id/textView2"
android:layout_below="@+id/editText2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="25dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/textView3"
android:layout_alignTop="@+id/textView2"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignBottom="@+id/textView2"
android:layout_toEndOf="@+id/textview"
android:textSize="25dp"
android:layout_toRightOf="@+id/textview" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="login"
android:id="@+id/button"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/textview"
android:layout_toStartOf="@+id/textview" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:id="@+id/button2"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@+id/textview"
android:layout_toEndOf="@+id/textview" />
</RelativeLayout>
در قسمت تغییرات فایل res/values/string.xml را می بینید:
<resources>
<string name="app_name">My Application</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>
در قسمت تغییرات فایل AndroidManifest.xml را می بینید:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
بياييد تا برنامه ای را که تغییر داده ایم اجرا کنیم. فرض مي كنیم كه شما اي دوي دي تان را ساخته ايد. در هنگام نصب براي ادلره كردن برنامه از طريق اكليپس يكي از فايل هاي فعاليت پروژتان را باز كنيد و از تولبار بر روي ران كليد كنيد. اكليپس برنامه را روي AVD شما نصب مي كند و آماده به كار مي شود. اگر همه چيز در نصب و برنامه شما مرتب پيش رفت. پنجره زير نمايش داده خواهد شد:
هر چيزي كه مايليد در قسمت نام كاربري و رمز عبور وارد كنيد سپس كليد لاگين را فشار دهيد. من abc را در قسمت نام کاربری و abc را در قسمت نام کاربری وارد کردم که اشتباه می باشند و نتیجه به صورت زیر می شود:
این کار بیشتر از دو بار انجام شده اگر اين كار را بار ديگر انجام دهيد خواهيد ديد كه به علت اشتباه بودن نام كاربري و رمز عبور كليد لاگين غير فعال خواهد شد.
- نوشته شده توسط سعید نوشادی
- بازدید: 5583