Thứ Hai, 2 tháng 6, 2014

Custom ListView Android

Bài này Học Lập Trình sẽ huớng dẫn các bạn tùy chỉnh ListView theo ý của mình. Nhứng úng dụng thực tế của ListView đựoc sử dụng rất là rộng rãi.
Bài viết gồm 4 phần:
1. Xây dưng giao diện ở layout
2. Xử lý code ở Java
3. Chạy chuơng trình để xem thành quả nhé 
4. Download Source Code
Listview trên có 3 thành phần đó là : Tên Danh Mục, Phần miêu tả chi tiết, và ô checkBox bên cạnh phía trái để cho người dùng chọn.
1. Xây dưng giao diện ở layout
Trong Layout có:
list_view.xml

+ activity_main.xml
+ list_view.xml
CODE:
-<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<CheckBox
android:id="@+id/cbDanhMuc"
android:layout_width="wrap_content"
android:layout_height="66dp"
android:paddingRight="10sp"
android:paddingTop="20sp"
android:text="" />

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/tvDanhMuc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="1"
android:textColor="#0101DF"
android:textSize="15sp"
android:textStyle="bold" />

<TextView
android:id="@+id/tvMieuTa"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:lines="1"
android:textColor="#DF013A"
android:textSize="13sp" />
</LinearLayout>

</LinearLayout>-
+ activity_main.xml
CODE:
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context="${packageName}.${activityClass}" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="StudyCoding.Net ?"
android:textSize="20sp" />

<ListView
android:id="@+id/listDanhMuc"
android:layout_width="fill_parent"
android:layout_height="358dp"
android:scrollbars="vertical" />

</LinearLayout>-
2. Xử lý code ở Java
+ DanhMuc
CustomDanhMuc
ListDanhMucAdapter
MainActivity

+ DanhMuc
CODE:
package com.studycoding.customlistviewandroid;

import java.io.Serializable;

public class DanhMuc implements Serializable{
private String tenDanhMuc;
private String moTa;
private boolean checked;
public DanhMuc(String tenDanhMuc){
this.tenDanhMuc = tenDanhMuc;
}
public String getTenDanhMuc(){
return this.tenDanhMuc;
}
public void setMoTa(String moTa) {
this.moTa = moTa;
}
public String getMoTa() {
return this.moTa;
}
@Override
public boolean equals(Object o) {
// TODO Auto-generated method stub
if(o instanceof DanhMuc) {
DanhMuc f = (DanhMuc)o;
return this.tenDanhMuc.equalsIgnoreCase(f.getTenDanhMuc());
}
return false;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return this.tenDanhMuc.hashCode();
}
}
+ CustomDanhMuc
CODE:
package com.studycoding.customlistviewandroid;

import android.content.Context;
import android.view.LayoutInflater;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;

public class CustomDanhMuc extends LinearLayout {
CheckBox cbDanhMuc;
TextView tvDanhMuc;
TextView tvMieuTa;
Context context;
public CustomDanhMuc(Context context) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
LayoutInflater li = (LayoutInflater)this.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
li.inflate(R.layout.list_view, this,true);

cbDanhMuc = (CheckBox)findViewById(R.id.cbDanhMuc);
tvDanhMuc= (TextView)findViewById(R.id.tvDanhMuc);
tvMieuTa = (TextView)findViewById(R.id.tvMieuTa);
}
}
+ ListDanhMucAdapter
+ MainActivity
CODE:
package com.studycoding.customlistviewandroid;

import java.util.ArrayList;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

public class ListDanhMucAdapter extends ArrayAdapter{
ArrayList array;
int resource;
CheckBox check;
TextView tvDanhMuc;
TextView tvMieuTa;
Context context;
DanhMuc DanhMuc;

public ListDanhMucAdapter(Context context, int textViewResourceId,ArrayList array) {
super(context, textViewResourceId,array);
// TODO Auto-generated constructor stub

this.context = context;
this.resource = textViewResourceId;
this.array = array;
}
public View getView(int position, View convertView, ViewGroup parent){
View friendView = convertView;
if(friendView ==null ){
friendView = new CustomDanhMuc(getContext());
}
DanhMuc = array.get(position);
if(DanhMuc !=null){
tvDanhMuc = ((CustomDanhMuc)friendView).tvDanhMuc;
tvMieuTa = ((CustomDanhMuc)friendView).tvMieuTa;
check =((CustomDanhMuc)friendView).cbDanhMuc;
// lay doi tuong friend va dua ra UI
tvDanhMuc.setText(DanhMuc.getTenDanhMuc());
tvMieuTa.setText(DanhMuc.getMoTa());

}
return friendView;
}

}

3. Chạy chuơng trình để xem thành quả nhé

4. Download Source Code

Custom Button trong Android




7 CÂU HỎI THƯỜNG GẶP TRONG PHỎNG VẤN BẰNG TIẾNG ANH

Chắc hẳn bạn rất quan tâm nhưng câu hỏi của nhà tuyển dụng sẽ hỏi bạn như thế nào khi bạn tham gia phỏng vấn, xin việc. 
Nhất là đối với các công ty nuớc ngoài thì việc giao tiếp tốt đã là 1 lợi thế ghi điểm đầu tiên của bạn. Vậy đối với nhà tuyển dụng nhưng câu hỏi giao tiếp nào thuờng xuyên đuợc đề cập tới. Ở đây mình sẽ đưa ra vài câu rất hay thuờng gặp nhất là đối với các sinh viên mới ra truờng.

7 CÂU HỎI THƯỜNG GẶP TRONG PHỎNG VẤN BẰNG TIẾNG ANH

Share cho các bạn của bạn cùng biết nhé!

1. “Tell me a little about yourself.” – Giới thiệu về bản thân bạn.
- I’m a hard worker and I like to take on a variety of challenges. I like pets, and in my spare time, I like to relax and read the newspaper.
Tôi là nhân viên chăm chỉ và tôi luôn muốn được thử sức mình. Tôi thích thú cưng, và lúc có thời gian rảnh, tôi thích thư giãn và đọc báo
2. “What are your strengths?”“Điểm mạnh của bạn là gì?”
- My strongest trait is in customer service. I listen and pay close attention to my customer’s needs and I make sure they are more than satisfied.
Điểm mạnh nhất của tôi là chăm sóc khách hàng. Tôi luôn lắng nghe và chú ý tới nhu cầu của khách hàng và tôi chắc chắn mang đến cho họ nhiều hơn những gì họ mong đợi.
3. “What are your weaknesses?”“Điểm yếu của bạn là gì?”
- I feel my English ability is my weakest trait. I know this is only a temporary problem. I’m definitely studying hard to communicate more effectively.
Tôi thấy điểm yếu nhất của chúng tôi là tiếng anh. Với tôi đây chỉ là vấn đề tạm thời vì tôi chắc chắn sẽ học tập chăm chỉ để giao tiếp tiếng anh hiệu quả hơn.
4. “What are your short term goals?” “Các mục tiêu ngắn hạn của bạn là gì?”
- My short term goal is to find a position where I can use the knowledge and strengths that I have. I want to partake in the growth and success of the company I work for.
Mục tiêu trước mắt của tôi là tìm được môt vị trí nơi mà tôi có thể sử dụng kiến thức và những điểm mạnh tôi có. Tôi muốn được góp phần vào sự phát triển và thành công của công ty mà tôi làm việc.
5. “What are your long term goals?” “Các mục tiêu dài hạn của bạn là gì?”
- I would like to become a director or higher. This might be a little ambitious, but I know I’m smart, and I’m willing to work hard.
Tôi muốn trở thành một giám đốc hoặc hơn thế nữa. Điều này có thể hơi tham vọng, nhưng tôi hiểu rằng tôi thông minh và tôi sẵn sàng làm việc chăm chỉ.
6. Why should we hire you? Tại sao chúng tôi nên tuyển bạn?
- I’m a team player who has been interpersonal skills.
Tôi là người có tinh thần làm việc nhóm và có kĩ năng giao tiếp tốt.
7. What do you think makes you a good fit for this company?Theo bạn thì điều gì làm bạn thích hợp với công ty ?
Với câu hỏi trên, nhà tuyển dụng đang muốn biết những kĩ năng bạn có và quan trọng hơn là những điểm mạnh nào của bạn phù hợp với vị trí họ đang tìm kiếm.
- I am pro-active and I don’t hesitate to take initiative.
Tôi là một người chủ động và tôi không ngần ngại để được nắm thế chủ động.
- My analytical nature makes me great at problem-solving.
Tôi thích phân tích vấn đề và điều này giúp tôi giải quyết khó khăn rất nhanh.
Trên đây chỉ là một số câu hỏi thường gặp và một số gợi ý trả lời hay dành cho bạn.

TÀI LIỆU THIẾT KẾ SỐ

Chủ Nhật, 1 tháng 6, 2014

Websites hỗ trợ học lập trình tốt

1.Trang cung cấp lý thuyết + code ví dụ

http://www.w3schools.com/
2.Trang giải quyết thắc mắc khi code

http://stackoverflow.com/

Tài liệu học lập trình android từ cơ bản -> nâng cao ( Tiếng Việt - English)


1. Lập trình ứng dụng android 
Mục tiêu của tài liệu giúp nguời học:
Tự thiết lập môi trường để phát triển ứng dụng cho Android.
 Áp dụng được quy trình phát triển ứng dụng cho điện thoại Android.
 Tự phát triển ứng dụng Android hoàn chỉnh, theo mô hình hướng đối tượng, tích hợp các
module của Google, của nhà phát triển thứ 3 vào ứng dụng của bạn.
 Hiểu biết sâu sắc về Android và những công nghệ mới của Google.
 Tự phát triển ứng dụng Android hoàn chỉnh tích hợp các modul





2. Lập Trình


Custom Button trong Android

Trong android các control đều thuộc lớp View. Như TextView, Button, EditText, . . . .Các bạn có thể tùy chình hình dạng, trang trí giao diện cho các control này như ý muốn.
Hôm này Học Lập Trình sẽ huớng dẫn các bạn 1 cách tùy chỉnh giao diện cho các control 1 cách đơn giản là include file .xml vào cho background để điều chỉnh giao diện.
Đầu tiên các bạn tạo 1 file .xml trong thư mục draw để tùy chỉnh giao diện.
Chuột phải vào thư mục Draw -> New -> File XML
Đặt tên dinhdang.xml
Thêm code sau vào:
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Set màu nền -->
<solid android:color="#FACC2E">
</solid>
<!-- đặt thuộc tính màu và độ rộng của đường viền -->
<stroke android:color="#0101DF" android:width="3dp">
</stroke>
<!-- các thuộc tính căn chỉnh -->
<padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp">
</padding>
<!-- và đây là bán kính đường tròn ở 4 góc -->
<corners android:radius="400dp">
</corners>
</shape>
Ở màng hình chính bạn thêm thuộc tính android:background="@drawable/duongvien"

Và xêm kết quả