سبد (0)

آموزش 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 را در قسمت نام کاربری وارد کردم که اشتباه می باشند و نتیجه به صورت زیر می شود:

این کار بیشتر از دو بار انجام شده اگر اين كار را بار ديگر انجام دهيد خواهيد ديد كه به  علت اشتباه بودن نام كاربري و رمز عبور كليد لاگين غير فعال خواهد شد.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه