23 / 05 / 1401
Asia/Tehran 23:09

در بخش بیست و سوم از آموزش برنامه نویسی اندروید استودیو، در مورد توگل باتن (Toggle Button) ها صحبت کردیم.

کاری که یک Toggle Button می کرد این بود که می توانستیم با انتخاب وضعیتی دلخواه، فرایند مربوط به آن، اجرا شود.

در این بخش در مورد چک باکس (CheckBox) صحبت می کنیم. CheckBox از لحاظ عملکرد شباهت بسیار زیادی به ToggleButton دارد.

checkbox-android-studio-learning

من یک پروژه جدید به نام 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();

            }
        });

    }
}

android-studio-beginners-gsm-developers_84


142 نوشته
طراح سایت و برنامه نویس

2 Comments

  1. حسین

    سلام ممنون از آموزش بی نظیرتون
    اگه بطور مثال بخواهیم ده تا چک باکس داشته باشیم و بگیم که وقتی کاربر ۵ تا از اونها رو چک زد ( فرقی نداشته باشه کدوم چک باکس هارو ) بیا یه پیغام نمایش بده … به چه طریقی اینکار امکان پذیر هست ( در اصل فقط تعداد آنها رو مد نظر قرار بدیم )

    ممنون میشم اگه راهنمایی کنید

      1. ایلیا

        درود
        در این صورت باید از دستور شرطی استفاده کنید و id چک باکس ها را در دستور شرطی تعریف کنید که مثلا این چک باکس ها اگر فعال بودند این کارو انجام بده در غیر اینصورت کار دیگه ای انجام بده
        مثلا

        public void itemClicked(View v) {
        //code to check if this checkbox is checked!
        CheckBox checkBox = (CheckBox)v;
        if(checkBox.isChecked()){

        }
        }

پاسخ دهید

فیلدهای مورد نیاز با * علامت گذاری شده اند

*

code