آموزش ساخت Checkbox با کد در اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت Checkbox با کد در اندروید می پردازیم منظور ساخت Checkbox پویا (Dynmaic) است از ویژگی هایی که این نوع Checkbox ها دارا هستند نیازمند نبودن به find کردن آنها و پویا بودن Checkbox هاست که این کار باعث می شود در هر زمانی که بخواهید آنها را تغییر دهید در ادامه با ما همراه باشید تا نحوه ساخت Checkbox پویا را یاد گیرید.
ابتدا وارد مسیر res/values شده و فایل strings.xml را همانند زیر ویرایش کنید.
1 2 3 4 | <resources> <string name="app_name">DynamicCheckbox - Programchi</string> <string name="check_it">Check it</string> </resources> |
سپس باید یک layout داشته باشید می توانید از layout پیشفرض برنامه خودتان استفاده کنید فقط باید یک LinearLayout همانند زیر در آن تعریف کرده باشید.
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/rootContainer" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> </LinearLayout> |
در بالا یک LinearLayout با آیدی rootContainer داریم که در ادامه از آن استفاده خواهیم کرد.
بعد از اینکار کد های زیر را در MainActivity.java قرار دهید (کد را توضیح خواهیم داد)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package ir.programchi.dynamiccheckbox; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); LinearLayout linearLayout = findViewById(R.id.rootContainer); CheckBox checkBox = new CheckBox(this); checkBox.setText(R.string.check_it); checkBox.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { String msg = "You have " + (isChecked ? "checked" : "unchecked") + " this Check it Checkbox."; Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show(); } }); if (linearLayout != null) { linearLayout.addView(checkBox); } } } |
در بالا ابتدا Linear را find کردیم سپس یک شئی از CheckBox درست کردیم و مقدار context اکتیویتی را به آن فرستادیم بعد از اینکار یک رشته برای آن تغیین کردیم (این رشته از res خوانده خواهد شد) برای اینکه اندازه Checkbox را تعیین کنیم باید از ویژگی setLayoutParams استفاده کنیم و بیشتر ویژگی و Property های Checkbox در این شئی وجود دارد یعنی شما می توانید هر ویژگی را که در Checkbox معمولی استفاده می کنید در اینجا نیز استفاده کنید.
برای اینکه بروی آن یک Listener تعریف کنیم از ویژگی setOnCheckedChangeListener استفاده می کنیم و در نهایت با استفاده از addView چکباس (Checkbox) را به Linear اضافه می کنیم.
این آموزش هم به پایان رسید.
موفق باشید.