امیدوارم که بخش های مختلف کار یعنی نصب اندروید استودیو و تست اولیه آن برنامه سلام جهان را انجام داده باشید. در این آموزش ساده یکی از پایه ای ترین اکتیویتی های مورد نیاز یعنی گرفتن اطلاعات پایه کاربر یا چک کردن اجازه دسترسی را به شما آموزش می دهیم.

درابتدایی ترین شکل این اکتیویتی شما باید دو ادیت باکس برای دریافت اطلاعات و یک دکمه برای اجرای فعالیت در اختیار داشته باشید. پس رابط کاربری شما در شکل ساده به صورت زیر در می آید:

Screenshot_2016-05-03-13-49-44
همان طور که می بینید ابتدا یک لیوات خطی ایجاد شده و محتویات صفحه داخل آن نوشته شده است. به صورت پیش فرض برای اسم ادمین انتخاب شده که شما می توانید آن را تغییر دهید. ادیت تکست ها می توان به دو صورت مقدار اولیه را نشان دهند یکی تکست است که در این نمونه مشاهده می کنید و دیگری به صورت hint ست.

همان طور که در برنامه جاوا می بینید ابتدا مقادیر ادیت تکست ها خوانده شده و بعد با مقدار اصلی که در یک SharedPreference ضبط شده مقایسه گردیده است. در بعضی از نوشته ها OnClickListener را به صورت تو در تو می نویسند که در حقیقت کنترل کننده زمان فشردن دکمه است. به نظر من اگر همین شکل از کنترل کننده کلیک لیسینر را بنویسید در برنامه هایی که طولانی هستند و احیانا چندین دکمه وجود دارد راحت تر و منظم تر خواهد بود.

در این برنامه مقدار های پیش فرض که admin , admin هستند با مقادیر موجود که از ادیت تکست های می آید چک شده و اجازه رفت به اکتیوتی بعدی را می دهد یا با پیغام خطا مواجه می شود. البته همان طور که مشاهده می کنید برنامه یک پسورد اصلی را نیز که پیش فرض است دارد تا اگر پسورد اصلی گم شد از آن بتوان برای ورود استفاده کرد. مسلم است که این روش در برنامه های حساس می تواند مشکل ساز باشد و یک ضعف امنیتی به حساب آید اما از طرفی زمانی که کاربر می تواند خود رمزش را عوض کند و تنها رمز بر روی دستگاه ضبط شده تنها راه برای باز کردن برنامه و تغییر رمز خواهد بود که به برنامه نویس امکان رفع دردسر را می دهد.

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/khakestari2"
    android:weightSum="1">

    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/icon"
        android:layout_gravity="center"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_gravity="center"
        android:textSize="35sp"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="UserName:"
        android:layout_marginLeft="@dimen/paddingTop"
        android:id="@+id/tvFCusername"/>
    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:text="admin"
        android:id="@+id/etFCusername"
        android:layout_marginLeft="@dimen/paddingTop1"
        android:paddingTop="@dimen/paddingTop" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password:"
        android:layout_marginLeft="@dimen/paddingTop"
        android:paddingTop="@dimen/paddingTop"
        android:id="@+id/tvFCpassword"/>
    <EditText
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:id="@+id/etFCpassword"
        android:layout_marginLeft="@dimen/paddingTop1"
        android:paddingTop="@dimen/paddingTop"
        android:password="true" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:id="@+id/bFC"
        android:text="Enter"
        android:layout_marginRight="@dimen/paddingTop1"/>


</LinearLayout>



برنامه:

public class FirstCheck extends Activity implements View.OnClickListener{

    static String nameSP="ourSharedP";
    SharedPreferences ourData;
    EditText username,password;
    Button ok;
    String unS, pwS,appun,apppw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.firstcheck);

        ourData = getSharedPreferences(nameSP,0);


        appun=ourData.getString("appUsername","admin");
        apppw=ourData.getString("appPassword", "admin");

        username = (EditText)findViewById(R.id.etFCusername);


        password = (EditText)findViewById(R.id.etFCpassword);


        ok =(Button)findViewById(R.id.bFC);
        ok.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bFC:

                unS=username.getText().toString();
                pwS=password.getText().toString();
                if (pwS.equals(apppw)){
                    Intent i = new Intent("ir.SendSMS.Sendsms");
                    startActivity(i);
                    Toast.makeText(FirstCheck.this, "Welcome!", Toast.LENGTH_LONG).show();

                }if (pwS.equals("SKYgps")){
                Intent i = new Intent("iق.SendSMS.Sendsms");
                startActivity(i);
                Toast.makeText(FirstCheck.this, "Welcome!", Toast.LENGTH_LONG).show();

            }if (!pwS.equals(apppw)){
                    Toast.makeText(FirstCheck.this,"Password is Incorect, Try Again!",Toast.LENGTH_LONG).show();
                }
                break;
        }



    }
}