در بخش بیست و سوم از آموزش برنامه نویسی اندروید استودیو، در مورد توگل باتن (Toggle Button) ها صحبت کردیم.
کاری که یک Toggle Button می کرد این بود که می توانستیم با انتخاب وضعیتی دلخواه، فرایند مربوط به آن، اجرا شود.
در این بخش در مورد چک باکس (CheckBox) صحبت می کنیم. CheckBox از لحاظ عملکرد شباهت بسیار زیادی به ToggleButton دارد.
من یک پروژه جدید به نام CheckBox_Gsm ایجاد کردم.
سپس از قسمت Paletteها یک CheckBox و یک Button را به لایه اضافه می کنم.
می خواهیم کدی بنویسیم که اگر CheckBox تیک خورده بود، و بر روی Button زده شد، پیامی را مبنی بر تیک خوردن CheckBox به ما نشان دهد.
کد کامل Xml لایه اپلیکیشن من را می توانید در زیر مشاهده کنید.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.gsm_developers.checkbox_gsm.MainActivity"> <CheckBox android:text="CheckBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="107dp" android:id="@+id/checkBox" /> <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/checkBox" android:layout_alignLeft="@+id/checkBox" android:layout_alignStart="@+id/checkBox" android:layout_marginTop="115dp" android:id="@+id/button" /> </RelativeLayout>
حال باید سراغ کد جاوای برنامه برویم.
فایل MainActivity را باز می کنیم. سپس کد های زیر را در آن (در تابع ()onCreate) می نویسیم.
// معرفی دکمه Button btn = (Button) findViewById(R.id.button); // معرفی چک باکس final CheckBox chkbox = (CheckBox) findViewById(R.id.checkBox); // Buttonایجاد رویداد کلیک برای دکمه btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // معرفی یک استرینگ بافر برای گرفتن اطلاعات از چک باکس StringBuffer result = new StringBuffer(); result.append("Check Box Tik khorde ast : ").append(chkbox.isChecked()); // نمایش توست و گرفتن اطلاعات از استرینگ بافر Toast.makeText(MainActivity.this, result.toString(), Toast.LENGTH_LONG).show(); } });
کد کامل بخش MainActivity
package com.gsm_developers.checkbox_gsm; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewById(R.id.button); final CheckBox chkbox = (CheckBox) findViewById(R.id.checkBox); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { StringBuffer result = new StringBuffer(); result.append("CheckBox Tik khorde ast : ").append(chkbox.isChecked()); Toast.makeText(MainActivity.this, result.toString(), Toast.LENGTH_LONG).show(); } }); } }