Switch در اندروید
در اندروید، Switch یک عنصر رابط کاربری دو جانبه است که بعد از
نسخه آندروید 4.0 (API سطح 14) معرفی شد و اصولاً برای نشان دادن حالت های ONیا OFF استفاده می شود . در حالت ظاهری Switch به عنوان یک دکمه با حالت کشویی است که کاربر با استفاده از انگشت شست خود آن را در حالت های خاموش یا روشن تنظیم می کند . عنصر Switch از این جهت برای کاربران مفید است که در سطوح انتخاب خود بین دو حالت می تواند آن را در حالت خاموش یا روشن تنظیم کند . سوئیچ از زیر مجموعه کلاس CompoundButton محسوب می شود که غالبا دو حالت true یا falseرا برمی گرداند . از این ویو معمولاً در انتخاب روشن / خاموش کردن صدا، بلوتوث، فای و غیره استفاده می شود.
نحوه اضافه کردن Switch به پروژه:
بطور کلی دو روش کلی برای ایجاد Switch در برنامه اندروید وجود دارد. راه حل اول همانطور که پیشتر توضیح داده شد افزودن از طریق فایل XML که به شکل زیر می باشد.
<Switch android:id="@+id/Switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" />
در این روش در فایل XML همانند فایل activity_main.xml و در داخل لایوت های اصلی یا فرعی ، تگ شروع شونده Switch > را تایپ کرده و سپس سایر ویژگی های مربوط به آن مانند متن ویو ، رنگ متن ، اندازه متن و … را به آن اضافه می کنیم و سپس با تگ پایانی /> آن را می بندیم. به منظور درک بیشتر موضوع به کدهای زیر دقت کنید:
<?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" > <Switch android:id="@+id/Switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Blutooth" android:layout_gravity="center" android:checked="true" android:textSize="20sp" android:textColor="#000" /> </LinearLayout>
همانطور که در کد هایXML فوق می بینید Switch در داخل لایوت اصلی ما یعنی LinearLayout قرار دارد و دارای ویژگی های متعددی است که در برنامه به هنگام اجرای آن بر روی آن اعمال می شود. دقت شود که همانند CheckBox ارزش اولیه و پیشفرض Switch را می توان در کد زیر تعیین نمود:
android:checked=”true”
یا
android:checked=”false”
در گام نخست آنچه برای مهم و ضروری بنظر می رسد نحوه فراخوانی این عنصر ایجاد شده به منظور اعمال برخی عملیات ها در کلاس مرتبط با آن است. به همین منظور تمامی ویوهای موجود در فایل XML را از طریق ایدی یا شناسه مرتبط با آن ویو در کلاس فراخوانی می کنیم. که در مثال ذکر شده ایدی Switch به شکل زیر تعریف شده است:
android:id=”@+id/Switch1″
برای فراخوانی Switch و سایر ویوها برای منظور برنامه نویسی در کلاس از متد
findViewById(R.id.yourid)
استفاده می کنیم.
به همین منظور لازم است در کلاس ها اولاً فایل XML مرتبط با کلاس مشخص شود. یعنی ما باید مشخص کنیم که قصد فراخوانی چه چیزی را از کدام فایل XMl داریم که در کد زیر در دستور مشخص شده با رنگ قرمز مشخص شده است و سپس آن ویو یا عنصر مورد نظر در فایل مربوطه را بر اساس شناسه آن فراخوانی می کنیم و آن در متغیری از نوع خود ذخیره می کنیم.
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Switch;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Switch mswitch = (Switch)findViewById(R.id.Switch1);
}
}
تا اینجا ما توانستیم Switch مورد نظر خود را در فایل Xml ایجاد کرده و آن را به کلاس موردنظر خودمان تعریف کنیم. اکنون لازم است تعیین کنیم که چگونه می توانیم مقدار ارزش Switch را استخراج کنیم.
به مثال زیر توجه کنید:
به منظور درک بهتر توضیحات فوق نظر شما را به مثالی ساده جلب می کنیم. در این مثال قرار است کاربر با تغییر حالت Switch دکمه را کلیک کند و وضعیت و حالت Switch را در یک پیام Toast مشاهده کند.
اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را ایجاد کنید
اکلیپس :File ⇒ New Android ⇒ Application Project
اندروید استودیو :File ⇒ New ⇒ New Project
اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk و نوع اکتیویتی (blank یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود را همان MainActivity قرار دهید.
در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml زیر را به آن اضافه کنید:
<?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" > <Switch android:id="@+id/Switch1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Blutooth" android:layout_gravity="center" android:checked="true" android:textSize="20sp" android:layout_marginTop="30sp" android:textColor="#000" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button1" android:text="Click Me" android:layout_gravity="center" android:layout_marginTop="40sp"/> </LinearLayout>
سپس به سراغ کلاس اصلی خود یعنی MainActivity می رویم و کدهای مندرج در زیر را در آن قرار می دهیم.
import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.Button; import android.widget.Switch; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Switch mswitch = (Switch)findViewById(R.id.Switch1); Button btn = (Button)findViewById(R.id.button1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mswitch.isChecked()) Toast.makeText(getApplication(), "Switch is On", Toast.LENGTH_LONG).show(); else{ Toast.makeText(getApplication(), "Switch is Off", Toast.LENGTH_LONG).show(); } } }); } }
حال می توانید برنامه را اجرا کرده و نتیجه کار خود را ببینید.
موفق و پیروز باشید.
0 دیدگاه