Archive

Archive for March, 2012

Using Activities as Dialogs

Dialogs offer a simple and lightweight technology for displaying screens, but there will be times when you need more control over the content and life cycle of your Dialog box.
The solution is to implement it as a full Activity. By creating an Activity, you lose the lightweight nature of the Dialog class, but you gain the ability to implement any screen you want and full access to the Activity life-cycle event handlers.
So, when is an Activity a Dialog? The easiest way to make an Activity look like a Dialog is to apply the android:style/Theme.Dialog theme when you add it to your manifiest, as shown in the following XML snippet:

<activity android:name=”ActivityName”

android:theme=”@android:style/Theme.Dialog”>
</activity>
This will cause your Activity to behave like a Dialog, floating on top, and partially obscursing, the the Activity beneath it.
Source: Page 147, Professional Android Application Development Ebook

Some snippets with android developer

1. Check SDCard on Android machine:

import android.os.Environment;

private boolean isHaveSDCard(){
return Environment.getExternalStorageDirectory().equals(Environment.MEDIA_MOUNTED);
}
2. Get information about Memory and CPU:
import java.lang;

private String getMemoryInfo(){

ProcessBuilder cmd;
String result = new String();
try{
String[] args  ={“/system/bin/cat”,”/proc/meminfo”};
cmd = new ProcessBuilder(args);
Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1){
result = result + new String(re);
}
in.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
privateString getCPUinfo(){
        ProcessBuilder cmd;
        String result="";
        try{
            String[] args = {"/system/bin/cat", "/proc/cpuinfo"};
            cmd = newProcessBuilder(args);
            java.lang.Process process = cmd.start();
            InputStream in = process.getInputStream();
            byte[] re = newbyte[1024];
            while(in.read(re) != -1){
                result = result + newString(re);
            }
            in.close();
        } catch(Exception ex){
            ex.printStackTrace();
        }
        returnresult;
    }
Source: vietandroid.com
Categories: Android

Những bộ đồ hóa trang thú vị của các bé cún

Ngắm nhìn những chú cún xin xắn trong những bộ quần áo hóa trang đáng yêu, ngộ nhĩnh. Có chú hóa thân thành khủng long, có chú lại điệu đà với váy bồng của công chúa… Chúng ta hãy cùng ngắm nhìn và cùng vui cười với những bộ hóa trang thú vị này nha.

Ảnh: Sưu Tầm

Categories: Picture

Simple Tabhost in Android

Today, I will tell you how to use tabhost in android in a simple way.
First we will create a file and name it : /res/layout/tabhosttest.xml
The content of this file is:

<?xml version=”1.0″ encoding=”utf-8″?>
    android:id=”@+id/tabhost”
    android:layout_width=”match_parent”
    android:layout_height=”match_parent” >
    <LinearLayout
        android:layout_width=”fill_parent”
        android:layout_height=”fill_parent”
        android:orientation=”vertical” >
        <TabWidget
            android:id=”@android:id/tabs”
            android:layout_width=”fill_parent”
            android:layout_height=”wrap_content” />
        <FrameLayout
            android:id=”@android:id/tabcontent”
            android:layout_width=”fill_parent”
            android:layout_height=”fill_parent” >
            <AnalogClock
                android:id=”@+id/tab1″
                android:layout_width=”fill_parent”
                android:layout_height=”fill_parent” />
            <Button
                android:id=”@+id/tab2″
                android:layout_width=”fill_parent”
                android:layout_height=”fill_parent”
                android:text=”A semi-random button” />
        </FrameLayout>
    </LinearLayout>
</TabHost>
And then we will create a file in /src/TabHostTest.class

package tabhost.com.vn;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TabHost;
public class TabHostTutorialActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabhosttest);
        TabHost tabs = (TabHost)findViewById(R.id.tabhost);
        tabs.setup();
        TabHost.TabSpec spec = tabs.newTabSpec(“tag1”);
        spec.setContent(R.id.tab1);
        spec.setIndicator(“Clock”);
        tabs.addTab(spec);
        spec = tabs.newTabSpec(“tag2”);
        spec.setContent(R.id.tab2);
        spec.setIndicator(“Button”);
        tabs.addTab(spec);
    }
}
Finally we have a user interface like this:
       
J
ust so simple! Hope you have fun with this. (^.^)!!!
Source : The Busy Coders Guide To Android Development Ebook
Categories: Android

Chú chó dễ thương nhất TG với hai triệu người hâm mộ trên FB

Chú chó Pomeran Boo, 5 tuổi, có gần hai triệu fan hâm mộ trên trang mạng xã hội Facebook và trên một book deal.

Chú chó cảnh này dễ thương đến nỗi năm ngoái ngôi sao truyền hình Khloe Kardashian đã post hình của chú lên blog của cô và nữ ca sĩ nổi tiếng Ke$ha coi chú như “bạn trai mới” của cô trên mạng Twitter.

Kể từ lúc trang Facebook của Boo khai trương vào năm 2009, nõ đã có hàng ngàn người hâm mộ mới mỗi ngày.

Chủ của chú dùng bút danh J.H Lee, nhưng lại che giấu nhân dạng và địa điểm của cô ở Hoa Kỳ.

Hiện nay Boo đang bận rộn quảng bá cho cuốn sách mới của chú giá 8.99 bảng Anh, trong đó bao gồm những bức ảnh độc quyền của chú “đang làm mọi điều yêu thích, lang thang xung quanh, chơi với các bạn, khám phá thế giới rộng lớn, đeo kính thời trang” có tựa đề “Boo, cuộc sống của chú chó dễ thương nhất thế giới”.

Boo, chú chó Bomeran 5 tuổi, bắt gặp đang ngủ trên sàn nhà.

Được xếp vào giống chó cảnh, chó Bomeran, còn gọi là Poo hoặc Poo Poo, có kích thước nhỏ bé và khỏe mạnh. Chúng nằm trong số 15 giống chó nổi tiếng nhất ở Mỹ, và có tiếng tăm trên thế giới.

Boo trông rất “thời trang” trong những bộ cánh khác nhau.

… Và những cặp kính khác nhau

Số lượng fans Boo có ở trên Facebook là niềm mong ước của nhiều người nổi tiếng.

Boo xem ra cũng là một fan của đội bóng chày, The Cubs

Chú chó Bomeran đang quảng bá cho cuộc vận động Ngày của chúng tôi, một sáng kiến từ thiện của Free the Children

Boo chẳng hề ngại ngùng trước ống kính máy ảnh

Boo trông giống một chú gấu kỳ lạ hơn là một chú chó khi được cuốn kín trong chăn.

Chú chó đáng yêu đang làm dáng để chụp ảnh.

Boo trong trang phục … lễ hội Halloween

Boo có một người em trai Buddy và chú thích xem Chicago Cubs chơi bóng chày cùng với Buddy.

Boo là một chú chó làm bạn phải cười rất nhiều

Boo có vẻ đang chuẩn bị tập gym.

Boo đi chơi cửa hiệuTory Burch ở New York

Boo đang thư giãn trên đệm

Cô chủ của Boo chụp ảnh chú mỗi ngày để upload lên trang Facebook của chú.

Theo Enzyn9

Categories: Picture

Context menu

Define context menu EditText: /res/menu/context.xml

 <?xml version=”1.0″ encoding=”utf-8″?>

<menu

xmlns:android=”http://schemas.android.com/apk/res/android”&gt;

<item android:id=”@+id/menuItemHi” android:title=”@string/hi_msg”></item>

<item android:id=”@+id/menuItemHola” android:title=”@string/hola_msg”></item>

<item android:id=”@+id/menuItemHello” android:title=”@string/hello_msg”></item>

</menu>

Define constant strings used in application: /res/values/strings.xml

<?xml version=”1.0″ encoding=”utf-8″?>

<resources>

<string name=”hello”>Click Menu Button ! </string>

<string name=”app_name”>Android Menu Example</string>

<string name=”plus”>Plus</string>

<string name=”pre”>Pre</string>

<string name=”next”>Next</string>

<string name=”home”>Home</string>

<string name=”sub1″>Sub1</string>

<string name=”sub2″>Sub2</string>

<string name=”hi_msg”>Hi !</string>

<string name=”hola_msg”>Hola !</string>

<string name=”hello_msg”>Hello !</string>

</resources>

Register VIEW for context menu:

public class AndroidMenuExampleActivity extends Activity {

private EditText mOutEditText;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

mOutEditText = (EditText) findViewById(R.id.editText);

registerForContextMenu(mOutEditText);

}

Define context menu’s appereance:

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

super.onCreateContextMenu(menu, v, menuInfo);

MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.context_menu, menu);

}

Define context menu’s behavior:

@Override

public boolean onContextItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.menuItemHi:

//Task 1

break;

case R.id.menuItemHola:

//Task 2

break;

}

return super.onContextItemSelected(item);

}

Source:  Internet

Categories: Android

Auto Complete TextView

To create a text entry widget that provides auto-complete suggestions, use the AutoCompleteTextView widget. Suggestions are received from a collection of strings associated with the widget through an ArrayAdapter.

In this tutorial, you will create a AutoCompleteTextView widget that provides suggestions for a country name.

  1. Start a new project named HelloAutoComplete.
  2. Create an XML file named list_item.xml and save it inside the res/layout/ folder. Edit the file to look like this:
    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="10dp"
        android:textSize="16sp"
        android:textColor="#000">
    </TextView>

    This file defines a simple TextView that will be used for each item that appears in the list of suggestions.

  3. Open the res/layout/main.xml file and insert the following:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="5dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Country" />
        <AutoCompleteTextView android:id="@+id/autocomplete_country"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"/>
    </LinearLayout>

    The TextView is a label that introduces the AutoCompleteTextView widget.

  4. Open HelloAutoComplete.java and insert the following code for the onCreate() method:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
        textView.setAdapter(adapter);
    }

    After the content view is set to the main.xml layout, the AutoCompleteTextView widget is captured from the layout with findViewById(int). A new ArrayAdapter is then initialized to bind the list_item.xml layout to each list item in the COUNTRIES string array (defined in the next step). Finally, setAdapter() is called to associate the ArrayAdapterwith the AutoCompleteTextView widget so that the string array will populate the list of suggestions.

  5. Inside the HelloAutoComplete class, add the string array:
    static final String[] COUNTRIES = new String[] {
      "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
      "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
      "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
      "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
      "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
      "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
      "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
      "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
      "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
      "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
      "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
      "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
      "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
      "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
      "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
      "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
      "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
      "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
      "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
      "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
      "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
      "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
      "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
      "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
      "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
      "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
      "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
      "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
      "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
      "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
      "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
      "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
      "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
      "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
      "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
      "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
      "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
      "Ukraine", "United Arab Emirates", "United Kingdom",
      "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
      "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
      "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
    };

    This is the list of suggestions that will be provided in a drop-down list when the user types into the AutoCompleteTextView widget.

  6. Run the application.

As you type, you should see something like this:

More Information

Note that using a hard-coded string array is not a recommended design practice because your application code should focus on behavior, not content. Application content such as strings should be externalized from the code in order to make modifications to the content easier and facilitate localization of the content. The hard-coded strings are used in this tutorial only to make it simple and focus on the AutoCompleteTextView widget. Instead, your application should declare such string arrays in an XML file. This can be done with a <string-array<resource in your project res/values/strings.xml file. For example:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries_array">
        <item>Bahrain</item>
        <item>Bangladesh</item>
        <item>Barbados</item>
        <item>Belarus</item>
        <item>Belgium</item>
        <item>Belize</item>
        <item>Benin</item>
    </string-array>
</resources>

To use these resource strings for the ArrayAdapter, replace the original ArrayAdapter constructor line with the following:

String[] countries = getResources().getStringArray(R.array.countries_array);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, countries);

Source: developer.android.com

Categories: Android