به نام خدا
سلامی گرم به تمامی کاربران سایت دانشجویان کامپیوتر امیدوارم اوضاع و احوال وقف مرادتون باشه و همیشه خوب و خوش باشید.
باری دیگر قصد داریم در مبحثی دیگه از برنامه نویسی در خدمت کاربران عزیزمان باشیم و بتوانیم بیشتر برایشان سودمند از لحاظ بالا بردن سطح علم و دانششان بکوشیم.
این بار قصد دارم شما رو با برنامه نویسی اندروید Android اشنا کنم و از صفر کار تا تمام سرفصل هایی که می تواند در برنامه نویسی اندروید مورد استفاده قرار بگیرید رو جلو بریم تا بتوانیم برنامه های مختلفی برای گوشی های اندرویدی خود بنویسیم و بیشتر با برنامه های سیستم عامل اندروید گوشیمان آشنا بشیم. پس اگر قصد دارید برنامه نویسی اندروید رو دنبال کنید با سایت دانشجویان کامپیوتر (www.pcstudent.ir) همراه باشید.
برنامه نویسی اندرویدی ما با نرم افزار قدرتمند IntelliJ IDEA 14.1.5 خواهد بود.
در این قسمت از آموزش:

قصد داریم ارتباط اشیاء تعریف شده روی اکتیویتی هایمون رو با کد نویسی برقرار کنیم منظور این که اگر بخواهیم در محیط کد نویسی با مثلا button یا edittext یا … اشاره کنیم و رویداد هایی را انجام دهیم چگونه باید این کارو انجام دهیم.
ابتدا قصد داریم دکمه ای (button) را روی فرم قرار بدهیم برای انجام این کار باید یا به صورت گرافیکی یا به صورت کد مربوطه این کارو انجام دهید. به صورت زیر
<?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”
>
<Button
android:id=”@+id/btnok”
android:text=”ok”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”/>
</LinearLayout>
تگ button برای ایجاد دکمه مورد استفاده قرار می گیرد این تگ مقادیر زیادی می گیرد که در این مثال مهم ترین آن ها ذکر شده است. Id برای این مورد استفاده قرار می گیرد که بخواهیم یک نام به دکمه مورد نظر بدهیم که هر گاه بخواهیم این دکمه را صدا بزنیم از این نام استفاده کنیم. تمامی اشیایی که قرار است از ان ها در کد نویسی استفاده شود باید به همین صورت برای آن ها یک id تعریف خواهد شد.
در این آموزش همچنین قصد داریم از کاربر مقادیری به عنوان ورودی هم بگیریم. به همین خاطر روی همین اکتیویتی یک edittext هم قرار می دهیم که برای دریافت ورودی از کاربر استفاده می شود. این ویجت را نیز روی اکتیویتی قرار می دهیم.
<?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”
>
<EditText
android:id=”@+id/txt”
android:layout_marginTop=”15dp”
android:hint=”@string/enterhinit”
android:inputType=”number”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”/>
<Button
android:id=”@+id/btnok”
android:text=”ok”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”/>
</LinearLayout>
بعد از گذاشتن این دو به اکتیویتی تون باید به شکل زیر در بیاد. در خصوصیات edittext هم فقط خصوصیت hint و inputtype اگر نیاز به توضیح دارد که هستش: hint یک متن background درون edittext می نویسه و به محض این که روی ان کلیک شد از بین میره و زمانی که تمامی متن درون edittext پاک بشه دوباره برمی گرده. خصوصیت inputtype هم خاصیتی است که اون مقادیر ورودی به edittext را مشخص می کنه که قراره چه مقادیری اجازه وارد شدن داشته باشند مثلا در مثال که زدیم از نوع number هستش یعنی فقط مقدار عددی اجازه وارد شدن را دارد و اگر حرف کاربر تایپ کند دریافت نخواهد شد.
حالا که از لحاظ گرافیکی کارمان تمام شد بریم سر وقت کد نویسی برای این گرافیکمون.
فایل java متصل شده به این اکتیویتی را باز کنید. و سپس با قرار دادن کد زیر ارتباط با دکمه تعریف شده را برقرار کنید.
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button ok = (Button) findViewById(R.id.btnok);
Toast.makeText(Main.this,”oncreate”,Toast.LENGTH_LONG).show();
}
کد هایی رو که مشاهده می کنید همه شون در قسمت های قبلی توضیح داده شده به جزء یک خط کد که توضیح این خط کد می پردازیم.
توجه : کد های مورد نظر را در رویداد onCreate بنویسید.
Button ok = (Button) findViewById(R.id.btnok);
Button ابتدای خط اشاره به این دارد که ارتباط با یک دکمه هستش و ارتباط با هر چیزی که قصد دارید برقرار کنید باید از همون نوع در ابتدا وارد نمایید. سپس ok که یک متغییر از نوع همان دکمه ای هستش که قراره ارتباط با ان برقرار کنیم. سپس = و بعد آن نوشتن همان نوع که اینجا button است اما درون () که اصطلاحا به این روش ارتباط کستینگ می گویند. سپس نام تابع findViewById که اشاره دارد به R.id.btnok که فایل R فایلی هستش که تمام id هایی که کاربر تعریف می کند درون خود قرار می دهد و به این شکل می توانیم با دکمه یا دیگر اشیاء ارتباط برقرار کنیم الان ما یک متغییر به نام ok داریم که به دکمه ای که ساختیم ارتباط دارد.
همین کار را برای ارتباط با edittext انجام می دهیم. به شکل زیر
package com.example.amozesh;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button ok = (Button) findViewById(R.id.btnok);
EditText txt = (EditText) findViewById(R.id.txt);
Toast.makeText(Main.this,”oncreate”,Toast.LENGTH_LONG).show();
}
اگر از نرم افزاری که گفتم استفاده می کنید خودش import ها را انجام می دهد.
در ادامه قصد داریم وقتی کاربری عددی وارد کرد و روی دکمه ok کلیک کرد عدد وارد شده را در خودش ضرب کرده و دوباره در همان edittext نمایش دهد. ارتباط ها رو که برقرار کردیم حالا باید رویداد کلیک دکمه OK را بنویسیم که وقتی روی ان کلیک شد کاری برایمان انجام دهد برای این کار کد های زیر را می نویسم.
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
اسم متغییر را صدا زده و سپس تابع setOnClickListener را صدا می زنیم به بزرگ و کوچک بودن حروف دقت نمایید. سپس درون پرانتز کلمه new را وارد نمایید و سپس با زدن یک space دوباره تابع OnClickListener را وارد نمایید چند ثانیه صبر کنید تا خود نرم افزار بقیه کد ها را بنویسید اگر از نرم افزاری که گفتم استفاده کنید قدرتمند هستش و خودش راحت بهتون کمک خواهد کرد و نیازی به تاپ کامل توابع ندارید. حالا شما هر کدی درون قسمت onClick بنویسید هر وقت کاربر روی دکمه ای که ساختیم کلیک کند اجرا خواهد شد.
حالا قصد داریم متن درون edittext را که کاربر وارد کرده دریافت کنید. از دستور زیر استفاده می کنیم.
txt.getText();
موضوع این هستش که کاربر عدد وارد کرده و باید اون مقدار رو درون یک متغییر عددی بریزیم و ان را در خودش ضرب کنیم اما مشکل این جاست که به صورت getString و یا به صورت رشته دریافت می کنیم و نمی توانیم روی آن عملیات ضرب را انجام دهیم برای همین ابتدا باید مقدار رشته ای که گرفتیم به int یا مقداری عددی تبدیل کنیم و درون یک متغیر (در اینجا متغیر x) بریزیم. سپس آن را در خودش ضرب کنیم. برای این کار از دستور زیر استفاده می کنیم.
int x = Integer.parseInt(txt.getText().toString());
تابع Integer.parsInt تابعی است که مقدار ورودی خود را به نوع int یا عددی تبدیل می کنه. و درون ورودی این تابع همان متغیر edittext هستش که تعریف کردیم و تابع getText که گفتیم هستش که مقدار گرفته شده را به رشته تبدیل می کنه.
int x = Integer.parseInt(txt.getText().toString());
txt.setText(x * x +””);
خط کد بعدی با تایپ کردن نام متغیر edittext تابع setText را فراخوانی کرده ام تابع setText مقداری که به عنوان ورودی می گیرد را درون edittext قرار می دهد. امدیم متغیر x را که از ورودی گرفتیم و به متغیری عددی تبدیل کردیم را در هم ضرب کرده و سپس با جمع بستن آن با یک مقدار رشته ای خالی “” جواب کل ضرب متغیر x در خودش به رشته تبدیل می کند چون اول این که ضرب دو متغیر از نوع int جواب ان یک متغیر از نوع int می شود و دوم این که تابع setText یک متغیر از نوع رشته می گیرد و نمی توانیم یک مقدار از نوع int درون ان قرار دهیم.
یک رویداد مهم دیگری که شاید براتون به درد بخور باشه رویداد setOnLongClickListener می باشد این رویداد زمانی که شما روی دکمه یک کلیک طولانی داشته باشید اتفاق می افتد. این رویداد نیز همانند همان توضیحات بالاست مثلا می خوایم وقتی روی دکمه ok کلیک طولانی داشته باشیم یک پیغام long click بدهد برای انجام این کار کد های زیر که همه آن ها قابل فهم براساس توضیحات بالا می باشد هستش.
ok.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Toast.makeText(getApplicationContext(),”long click”,Toast.LENGTH_LONG).show();
return false;
}
});
پایان این قسمت
شما می توانید این قسمت از آموزش را به صورت آنلاین مشاهده نمایید.
همچنین می توانید ویدئو مربوط به این قسمت را با کیفیت اصلی دانلود نمایید.

[…] قسمت چهارم آموزش برنامه نویسی در سطح مقدماتی […]
[…] قسمت چهارم آموزش برنامه نویسی در سطح مقدماتی […]
[…] قسمت چهارم آموزش برنامه نویسی در سطح مقدماتی […]