ANDROID CƠ BẢN
1. XML trong Android
2. Vòng đời Activity trong Android
3. Layout trong Android
3.1. Linear Layout
3.2. Relative Layout
3.3. Table Layout
3.4 Frame Layout
3.5 Constraint Layout
4. GUI trong Android
4.1. TextView
4.2. EditText
4.3. Button
4.4. ImageView
4.5. ImageButton
4.6. ScrollView
4.7. CheckBox
4.8. Switch
4.9. RadioButton & RadioGroup
4.10. RatingBar
4.11. ProgressBar
4.12. AutoCompleteTextView
4.13. TimePicker & DatePicker
4.14. CalendarView
4.15. VideoView
4.16. Toast
4.17. WebView
4.18. Chronometer (đồng hồ bấm giờ)
4.19. Menu
5. List trong Android
5.1. Adapter trong Android
5.2. ListView
5.3. Spinner
5.4. GridView
5.5. ExpandableListView
5.6. RecycleView
5.7. SearchView
5.8. Swipe menu
5.9. Sliding menu
6. Intent trong Android
6.1. Implicit Intent
6.2. Explicit Intent
6.3. Intent Filter
7. Broadcast Receiver & Notifications trong Android
7.1. Broadcast Receiver
7.2. Notifications
8. Lưu trữ trong Andoid
8.1. Internal Storage
8.2. External Storage
8.3. SharedPreperence
8.4. Sqlite
8.5. Content Provider
9. Một số bài thực hành tổng hợp
9.1 Ứng dụng máy tính đơn giản – Simple Caculator
Tạo Project mới, đặt tên project là My Simple Caculator.
9.1.1. Thiết kế giao diện
Mở file layout activity_main.xml thiết kế giao diện như sau:
<?xml version="1.0" encoding="utf-8"?>
<[Link] xmlns:android="[Link]
xmlns:app="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="[Link]">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/txtResult"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="4"
android:layout_gravity="right"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<EditText
android:id="@+id/edtInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_span="4"
android:layout_gravity="right"
android:inputType="number"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnCE"
android:text="CE"
/>
<Button
android:id="@+id/btnC"
android:text="C"
/>
<Button
android:id="@+id/btnDelete"
android:text="Delete"
android:layout_span="2"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnNumber7"
android:text="7"
/>
<Button
android:id="@+id/btnNumber8"
android:text="8"
/>
<Button
android:id="@+id/btnNumber9"
android:text="9"
/>
<Button
android:id="@+id/btnNumberAdd"
android:text="+"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnNumber4"
android:text="4"
/>
<Button
android:id="@+id/btnNumber5"
android:text="5"
/>
<Button
android:id="@+id/btnNumber6"
android:text="6"
/>
<Button
android:id="@+id/btnNumberSub"
android:text="-"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnNumber1"
android:text="1"
/>
<Button
android:id="@+id/btnNumber2"
android:text="2"
/>
<Button
android:id="@+id/btnNumber3"
android:text="3"
/>
<Button
android:id="@+id/btnNumberMul"
android:text="*"
/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@+id/btnNumber0"
android:text="0"
/>
<Button
android:id="@+id/btnDot"
android:text="."
/>
<Button
android:id="@+id/btnResult"
android:text="="
/>
<Button
android:id="@+id/btnNumberDiv"
android:text="/"
/>
</TableRow>
</TableLayout>
</[Link]>
9.1.2. Xử lý code trong file [Link] như sau:
import [Link];
import [Link];
import [Link];
import [Link].*;
public class MainActivity extends AppCompatActivity {
Button btnNumber0;
Button btnNumber1;
Button btnNumber2;
Button btnNumber3;
Button btnNumber4;
Button btnNumber5;
Button btnNumber6;
Button btnNumber7;
Button btnNumber8;
Button btnNumber9;
TextView txtResult;
EditText edtInput;
Button btnCE;
Button btnC;
Button btnDelete;
Button btnAdd;
Button btnSub;
Button btnMul;
Button btnDiv;
Button btnDot;
Button btnResult;
double val1=[Link];
double val2;
String ACTION;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
btnNumber0 = (Button) findViewById([Link].btnNumber0);
btnNumber1 = (Button) findViewById([Link].btnNumber1);
btnNumber2 = (Button) findViewById([Link].btnNumber2);
btnNumber3 = (Button) findViewById([Link].btnNumber3);
btnNumber4 = (Button) findViewById([Link].btnNumber4);
btnNumber5 = (Button) findViewById([Link].btnNumber5);
btnNumber6 = (Button) findViewById([Link].btnNumber6);
btnNumber7 = (Button) findViewById([Link].btnNumber7);
btnNumber8 = (Button) findViewById([Link].btnNumber8);
btnNumber9 = (Button) findViewById([Link].btnNumber9);
txtResult = (TextView) findViewById([Link]);
edtInput = (EditText) findViewById([Link]);
btnCE = (Button) findViewById([Link]);
btnC = (Button) findViewById([Link]);
btnDelete = (Button) findViewById([Link]);
btnAdd = (Button) findViewById([Link]);
btnSub = (Button) findViewById([Link]);
btnMul = (Button) findViewById([Link]);
btnDiv = (Button) findViewById([Link]);
btnDot = (Button) findViewById([Link]);
btnResult = (Button) findViewById([Link]);
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
val1 = [Link];
[Link](null);
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
String number = [Link]().toString();
if(number != null && [Link]() > 0){
number = [Link](0, [Link]() - 1);
}
[Link](number);
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
ACTION = "+";
if(){
val2 = [Link]([Link]().toString());
val1 = val1 + val2;
} else {
val1 = [Link]([Link]().toString());
}
[Link](val1 + " + ");
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
ACTION = "-";
if(){
val2 = [Link]([Link]().toString());
val1 = val1 - val2;
} else {
val1 = [Link]([Link]().toString());
}
[Link](val1 + " - ");
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
ACTION = "*";
if(){
val2 = [Link]([Link]().toString());
val1 = val1 * val2;
} else {
val1 = [Link]([Link]().toString());
}
[Link](val1 + " * ");
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
ACTION = "/";
if(){
val2 = [Link]([Link]().toString());
val1 = val1/val2;
} else {
val1 = [Link]([Link]().toString());
}
[Link](val1 + " / ");
[Link](null);
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
if(ACTION != null && [Link]("+")){
double result = val1 + [Link]([Link]().toString());
[Link](null);
[Link]([Link](result));
} else if(ACTION != null && [Link]("-")){
double result = val1 - [Link]([Link]().toString());
[Link](null);
[Link]([Link](result));
} else if(ACTION != null && [Link]("*")){
double result = val1 * [Link]([Link]().toString());
[Link](null);
[Link]([Link](result));
} else if(ACTION != null && [Link]("/")){
double result = val1 / [Link]([Link]().toString());
[Link](null);
[Link]([Link](result));
}
ACTION = null;
val1 = [Link];
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "0");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "1");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "2");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "3");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "4");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "5");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "6");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "7");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "8");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + "9");
[Link]([Link]().length());
}
});
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]([Link]() + ".");
[Link]([Link]().length());
}
});
}
}
9.1.3. Thực hiện build project và chạy ứng dụng
9.2. Shopping Cart Simple
9.3. Snake game simple
9.4. Alarm simple