ToggleButton در اندروید
در اندروید از ToggleButton برای نمایش دو حالت متفاوت روشن یا خاموش، فعال یا غیرفعال بودن استفاده می شود که خود از زیر مجموعه هایcompoundButton محسوب می شود ساده ترین مثال ToggleButton را می توان در روشن / خاموش کردن صدا، بلوتوث، فای، hotspot و غیره در انواع مختلف نسخه های نرم افزاری می توان دید.
ToggleButton به کاربران اجازه می دهد تا یک تنظیم مربوط بین دو حالت متفاوت را تغییر دهند و کارکرد آن بیشتر در قسمت تنظیمات برای انتخاب بین دو حالت مانند روشن / خاموش کردن یک وضعیت است . این ویو از لحاظ کارکرد شبیه Switch می باشد که از لحاظ ماهوی و متدهای مورد استفاده بسیار مشابه ویو ذکر شده می باشد. در این مبحث آموزشی قصد داریم نحوه پیاده سازی و برنامه نویسی ویجت ToggleButton را خدمت دوستان عزیز آموزش دهیم.
نحوه اضافه کردن ToggleButton به پروژه:
بطور کلی روش متداول برای ایجاد ToggleButton در صفحه UIافزودن از طریق فایل XML است که به شکل زیر می باشد.
<ToggleButton android:id="@+id/simpleToggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
در این روش در فایل XML همانند فایل activity_main.xml و در درون یکی از لایوت های اصلی یا فرعی تگ شروع شونده ToggleButton > را می نویسیم و سپس بعد از تعیین اندازه طول و عرض ویو، سایر کد ویژگی های مربوط به آن مانند رنگ متن ، اندازه متن و … را به آن می افزاییم و در نهایت با تگ پایانی /> آن را می بندیم. به منظور درک بیشتر موضوع به کدهای زیر دقت کنید:
<?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"> <ToggleButton android:id="@+id/simpleToggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="50sp" android:textSize="20sp" android:textColor="#f20000"/> </LinearLayout>
همانطور که در کد هایXML بالایی می بینید ToggleButton نیز مانند سایر ویوهای فرزند در داخل لایوت اصلی ما یعنی LinearLayout قرار دارد و دارای ویژگی هایی است که به هنگام اجرای برنامه بر روی ویو اعمال می شود.
در گام نخست آنچه باید مدنظر دوستان قرار بگیرد این است که ویو مورد نظر جهت اعمال برخی ویژگی های دیگر و عملیات ها با استفاده از شناسه باید به کلاس اصلی خود معرفی شود که در مثال ذکر شده ایدی ToggleButton به شکل زیر تعریف شده است:
android:id=”@+id/simpleToggleButton”
بطور کلی برای فراخوانی ToggleButton و سایر ویوهای صفحه UI به منظور برنامه نویسی بر روی آن در کلاس از متد
findViewById(R.id.yourid)
استفاده می کنیم.
فلذا مطابق آنچه پیشتر بیان گردید در کلاس ها می بایست نخست فایل XML مرتبط با کلاس در قسمت مربوط به ()setContentViewمشخص شود. بدین معنی که ما باید تعیین کنیم که قصد داریم در این کلاس کدام فایل 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.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.ToggleButton;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ToggleButton tgbutton = (ToggleButton)findViewById(R.id.simpleToggleButton);
}
}
تا اینجا ما توانستیم ToggleButton مورد نظر خود را در فایل Xml ایجاد کرده و آن را به کلاس موردنظر خودمان شناسایی کنیم. اکنون لازم است مشخص کنیم که چگونه می توان از این ویو برای تغییر وضعیت مختلف استفاده نمود.
به منظور درک بهتر توضیحات مثالی برای دوستان در نظر گرفتیم که تا حدود زیادی می تواند راهگشای کار شما باشد. در این مثال قرار است کاربر با کلیک بر روی دکمه وضعیت جاری ToggleButton را در دو حالت روشن یا خاموش بودن مشاهده نماید.
اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را ایجاد کنید
اکلیپس :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"> <ToggleButton android:id="@+id/simpleToggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="50sp" android:textSize="20sp" android:textColor="#f20000"/> <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="60sp"/> </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.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import android.widget.Toast; import android.widget.ToggleButton; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ToggleButton tgbutton = (ToggleButton)findViewById(R.id.simpleToggleButton); Button btnstatus = (Button)findViewById(R.id.button1); btnstatus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, tgbutton.getText().toString(),Toast.LENGTH_SHORT).show(); } }); } }
حال می توانید پروژه خود را اجرا کرده و نتیجه کار خود را ببینید.
موفق و پیروز باشید.
0 دیدگاه