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

Android Support Library

com.android.support:support-compat:25.1.0
com.android.support:support-core-utils:25.1.0
com.android.support:support-core-ui:25.1.0
com.android.support:support-media-compat:25.1.0
com.android.support:support-fragment:25.1.0
com.android.support:multidex:1.0.0
com.android.support:design:25.1.0
com.android.support:support-annotations:25.1.0
com.android.support:customtabs:25.1.0
com.android.support:percent:25.1.0
com.android.support:exifinterface:25.1.0
com.android.support:recommendation:25.1.0

References
https://developer.android.com/topic/libraries/support-library/packages.html