Android Working with Toggle Button

    <ToggleButton
        android:textOn="Bluetooth On"
        android:textOff="Bluetooth Off"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/toggleButtonBluetooth"
        />

    <Switch
        android:textOff="Wifi Off"
        android:textOn="Wifi On"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="54dp"
        android:id="@+id/switchWifi"
        android:layout_below="@+id/toggleButtonBluetooth"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:text="Wifi" />

MainActivity.java

    ToggleButton toggleButtonBluetooth;
    Switch switchWifi;
    TextView textViewWifi;
    TextView textViewBluetooth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        toggleButtonBluetooth= (ToggleButton) findViewById(R.id.toggleButtonBluetooth);
        switchWifi= (Switch) findViewById(R.id.switchWifi);
        textViewBluetooth= (TextView) findViewById(R.id.textViewBluetooth);
        textViewWifi= (TextView) findViewById(R.id.textViewWifi);

        textViewBluetooth.setText("");
        textViewWifi.setText("");

        switchWifi.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked)
                {
                    textViewWifi.setText("Wifi is On");
                }
                else {
                    textViewWifi.setText("Wifi is Off");
                }
            }
        });


        switchWifi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // both are correct
            }
        });

        toggleButtonBluetooth.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Boolean isChecked=((ToggleButton) v).isChecked();

                if (isChecked)
                {
                    textViewBluetooth.setText("Bluetooth is On");
                }
                else {
                    textViewBluetooth.setText("Bluetooth is Off");
                }
            }
        });
    }

References
https://www.youtube.com/watch?v=RnpIY4UK87E&index=15&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk
https://github.com/mhdr/AndroidSamples/tree/master/010

Android Working with Radio Buttons

activity_main.xml

    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:id="@+id/radioGroupFruits">


        <RadioButton
            android:text="@string/apple"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textView"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/radioButtonApple"
            android:onClick="radioButton_onClick"/>

        <RadioButton
            android:text="@string/orange"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButtonApple"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/radioButtonOrange"
            android:onClick="radioButton_onClick"/>

        <RadioButton
            android:text="@string/banana"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/radioButtonOrange"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:id="@+id/radioButtonBanana"
            android:onClick="radioButton_onClick"/>
    </RadioGroup>

MainActivity.java

    TextView textViewResult;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textViewResult=(TextView) findViewById(R.id.textViewResult);
    }

    protected void radioButton_onClick(View view)
    {
        Boolean checked=((RadioButton) view).isChecked();
        RadioButton selected=(RadioButton) view;

        switch (selected.getId())
        {
            case R.id.radioButtonApple:

                if (checked)
                {
                    textViewResult.setText("Apple");
                }

                break;
            case R.id.radioButtonOrange:

                if (checked)
                {
                    textViewResult.setText("Orange");
                }

                break;
            case R.id.radioButtonBanana:

                if (checked)
                {
                    textViewResult.setText("Banana");
                }

                break;
        }

    }

References
https://www.youtube.com/watch?v=fGF6lWjJ9Os&index=14&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk
https://github.com/mhdr/AndroidSamples/tree/master/009

Android Working with Checkboxes

activity_main.xml

<CheckBox
        android:text="@string/banana"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/checkBoxOrange"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/checkBoxBanana"
        android:onClick="CheckBox_onClick"/>

MainActivity.java

    protected void  CheckBox_onClick(View view)
    {
        Boolean checked=((CheckBox) view).isChecked();
        int selectedId=view.getId();

        switch (selectedId)
        {
            case R.id.checkBoxApple:
                if (checked)
                {
                    selectedFruits.add("Apple");
                }
                else {
                    selectedFruits.remove("Apple");
                }
                break;
            case R.id.checkBoxOrange:
                if (checked)
                {
                    selectedFruits.add("Orange");
                }
                else {
                    selectedFruits.remove("Orange");
                }
                break;
            case R.id.checkBoxBanana:
                if (checked)
                {
                    selectedFruits.add("Banana");
                }
                else {
                    selectedFruits.remove("Banana");
                }
                break;
        }


        String selected="";

        for (String f:selectedFruits)
        {
            selected +=f + "\r\n";
        }

        textViewResult.setText("");
        textViewResult.setText(selected);
    }

References
https://www.youtube.com/watch?v=NGRV2qY9ZiU&index=13&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk
https://github.com/mhdr/AndroidSamples/tree/master/008

Android Working with AutoCompleteTextView

re => strings.xml

<resources>
    <string name="app_name">007</string>

    <string-array name="city_names">
        <item>Rasht</item>
        <item>Tehran</item>
        <item>Karaj</item>
        <item>Tabriz</item>
        <item>Mashad</item>
        <item>Sari</item>
        <item>Shiraz</item>
        <item>Ahvaz</item>
    </string-array>
</resources>

MainActivity.java

AutoCompleteTextView autoCompleteTextViewCities;
    String[] cities;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        autoCompleteTextViewCities= (AutoCompleteTextView) findViewById(R.id.autoCompleteTextViewCities);

        cities=getResources().getStringArray(R.array.city_names);


        ArrayAdapter<String> arrayAdapterCities=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,cities);

        autoCompleteTextViewCities.setAdapter(arrayAdapterCities);
    }

References
https://www.youtube.com/watch?v=dEhE9MMR7mg&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk&index=12https://github.com/mhdr/AndroidSamples/tree/master/007

Android Specifying the Keyboard Layout of EditText

<?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="iterator.ir.a006.MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:ems="10"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/editText"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Text" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:layout_below="@+id/editText"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="20dp"
        android:id="@+id/editText2"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Email"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="time"
        android:ems="10"
        android:layout_below="@+id/editText2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="33dp"
        android:id="@+id/editText3"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Time"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="date"
        android:ems="10"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/editText4"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Date"/>

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:layout_below="@+id/editText4"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="33dp"
        android:id="@+id/editText5"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:hint="Number"/>
</RelativeLayout>

References
https://github.com/mhdr/AndroidSamples/tree/master/006

Android Input Controls – Buttons

main_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    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="iterator.ir.a004.MainActivity">

    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/button" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@drawable/ic_alarm_black_24dp"
        android:layout_below="@+id/button"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="10dp"
        android:layout_marginStart="10dp"
        android:id="@+id/imageButton" />

    <Button
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button2"
        android:layout_below="@+id/imageButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:drawableLeft="@drawable/ic_alarm_black_24dp" />
</RelativeLayout>

References
https://www.youtube.com/watch?v=EJ43o11ynGg&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk&index=9
https://github.com/mhdr/AndroidSamples/tree/master/004

Android Working with Relative Layout

main_activity.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="iterator.ir.a003.MainActivity">


    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text=""
        android:hint="@string/firstNameHint"
        android:ems="10"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/editTextFirstName" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text=""
        android:hint="@string/lastNameHint"
        android:ems="10"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:id="@+id/editTextLastName"
        android:layout_toRightOf="@+id/editTextFirstName"
        android:gravity="center"
        android:layout_toEndOf="@+id/editTextFirstName" />

    <Button
        android:text="@string/buttonSave_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editTextLastName"
        android:id="@+id/buttonSave"
        android:layout_toRightOf="@+id/editTextFirstName"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

References
https://www.youtube.com/watch?v=QfF_oFPeh7c&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk&index=8
https://github.com/mhdr/AndroidSamples/tree/master/003

Android Working with Linear Layout

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="iterator.ir.a002.MainActivity"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:hint="@string/to_hint"/>
    
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:hint="@string/subject_hint"/>
    
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:hint="@string/message_hint"
        android:layout_weight="1"
        android:gravity="top|left"/>
    
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:hint="@string/buttonSend_text"
        android:layout_gravity="right"/>

</LinearLayout>

References
https://www.youtube.com/watch?v=DVRN3EuF9ys&index=7&list=PLshdtb5UWjSp0879mLeCsDQN6L73XBZTk
https://github.com/mhdr/AndroidSamples/tree/master/002

Android Send data to an Activity using Bundle

MainActivity.java

    Button buttonShow;
    EditText editTextMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttonShow= (Button) findViewById(R.id.buttonShow);
        editTextMessage= (EditText) findViewById(R.id.editTextMessage);
    }


    protected void buttonShow_onClick(View view){

        String message=editTextMessage.getText().toString();
        Intent intent=new Intent(this,SecondActivity.class);
        intent.putExtra("msg",message);
        startActivity(intent);
    }

SecondActivity.java

   TextView textViewMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent intent=this.getIntent();
        // Bundle bundle=intent.getExtras();
        String message=intent.getStringExtra("msg");

        textViewMessage= (TextView) findViewById(R.id.textViewMessage);
        textViewMessage.setText(message);
    }

References
https://github.com/mhdr/AndroidSamples/tree/master/001