관리 메뉴

드럼치는 프로그래머

[안드로이드] 제7강좌 - 기본위젯 편집 본문

★─Programing/☆─Android

[안드로이드] 제7강좌 - 기본위젯 편집

드럼치는한동이 2011. 5. 27. 09:17

@@@ 안드로이드 기본 위젯 @@@

- TextView : 표준 읽기 전용 텍스트 레이블, 멀티라인 디스플레이, 문자열 서식,자동 줄 바꿈

- EditText : 편집 가능한 텍스트 입력 박스

- AotoCompleteTextView : 사용자의 입력에 맞춰 텍스트를 보완

- ImageView : 아이콘이나 사진 표시

- VideoView : 비디오를 재생

- ListView : 항목을 리스트에 나타내는데 사용되는 뷰들의 그룹을 생서하고 관리하는 뷰 그룹

- Spinner : TextView 및 그와 연관된 ListView를 표시하는 복합 컨트롤 

                 선택된 항목을 표시하는 텍스트 뷰와 눌렀을 때 선택 다이얼로그를 나타내는 버튼과 결합하여 만들어짐.

 

- Button : 푸시 버튼

- CheckBox : 확인과 미확인으로 표시가 가능한 버튼

- RadioButton : 체크와 해제를 갖는 라디오 버튼

- RadioGroup : 여러개의 라디오 버튼을 그룹화 하여서 여러버튼 중 하나만 선택 가능하다록 하는 버튼 그룹

- ImageButton : 이미지를 표시할 수 있는 버튼

 

- DataPicker : 연,월,일을 달력에서 선택

- TimePicker : 시각을 선택

- AnalogClock : 아날로그 시계를 표현

- DigitalClock : 디지털 시계를 표현

============================================================================================================================================

1. @@@ Text문맥 링크 추가와 Edittext & spinner 사용 법 @@@

 



@@ .java @@

package android.weiget;

import android.app.Activity;
import android.os.Bundle;
import android.weiget.R;  //실행 시키기 위해서 선언

 

public class Androi extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

         //Activity 파생 클래스에서  setContentView() 매소드를 호출한다.

         // ()안에는 R.layout.main 과 같은 xml이 정의된 레이아웃을 넘겨줌
    }
}

============================================================================================================================================

@@ main.xml @@

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />

   

    <EditText android:id="@+id/EditText01"  //사용자가 입력가능한 textbox를 만든다 오래 누루고 있으면 메뉴창 뜸
       android:layout_height="wrap_content"
       android:hint="type here"                       //edit창에 기본으로 들어가 있을 문구
       android:lines="4"                                   //edit창의 기본 크기를 선언  선언하지 않으면 한줄로.....
       android:layout_width="fill_parent" />


    <EditText android:id="@+id/EditText01"
       android:layout_height="wrap_content"
       android:hint="type here"
       android:layout_width="fill_parent" />


    <TextView android:id="@+id/TextView04" //화면에서 html과 같이 파란색으로 표현된 곳을 누르면 자동으로 연결 되로록 만듬 ...... id부여함
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="web"                       //web으로 연결 됨
       android:text="@string/blog_test" />  // .string에 작성된 글씨를 가져온다.

    <TextView android:id="@+id/TextView05"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="email"
       android:text="@string/Email_test" />
    <TextView android:id="@+id/TextView06"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="phone"
       android:text="@string/Call_test" />
    <TextView android:id="@+id/TextView07"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="map"
       android:text="@string/Find_test" />
</LinearLayout>
============================================================================================================================================

@@@ string.xml @@@

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Androi!</string>
    <string name="app_name">androiw</string>
    <string name="blog_test">                   //main.xml에서 @string/이름     으로  불러와서 사용 될 이름과 문구 작성
     This is a test. My blog is at
     http://androidbool.blogspot.com       //연결 될 주소
    </string>
    <string name ="Email_test">
     This is a test. My Email is at
     googlegroups@naver.com
    </string>
    <string name ="Call_test">
     This is a test. My Call is at
     (800) 555-1212
    </string>
    <string name="Find_test">
     This is a test. My Find is at
     1456 white Mountain Hwy, North Conway,NH 03860
    </string>
</resources>
============================================================================================================================================

2. @@@ 사용자 편의를 위한 자동완성 기능 @@@   

1)AutcompleteTextview(한 단어에 대한 자동완성 기능)

2)MultiAutoCompleteTextView(쉼표를 이용하여 여러 단어를  이용한 자동완성 기능)

    -토크나이저를 통하여 구분한다.

 배열을 선언 -> 아답터 선언 -> textview와 연결되어야 함

 

 ============================================================================================================================================

@@@ .xml @@

  <AutoCompleteTextView   //한 입력에 하나만 입력
       android:id="@+id/Auto01"   //java에서 사용 될 아이디 선언
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:completionHint="Pick a color or type your own" //textview에 미리 보여지고 있는 도움말

       android:completionThreshold="1"  //자동완성 드롭다운 목록이 언제 표시 될 것인지를 결정한다. 첫글자를 입력 후 표시되려면 1을 설정
        />
    <MultiAutoCompleteTextView  //한 입력에서 여러 항목들을 구분하기 위하여 사용 -> Tokenizer를 사용함
       android:id="@+id/Multi01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:completionHint="Pick a color or type your own"
       android:completionThreshold="1"
        />

============================================================================================================================================

@@@ .java @@@

package android.weiget;

i

mport android.app.Activity;
import android.os.Bundle;
import android.weiget.R;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

 

public class Androi extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
         setContentView(R.layout.main);

 

final String[] COLORS ={
   "red","green","orange","blue","pupple",
   "black","yellow","cyan","magenta"
 };
 ArrayAdapter<String> adapter =
  new ArrayAdapter<String>(
  this, android.R.layout.simple_dropdown_item_1line, COLORS);
 //변수명 Arry( 어디에,위치,해당변수명)

     //텍스트뷰
      AutoCompleteTextView text =  
        (AutoCompleteTextView) findViewById(R.id.Auto01);     //xml의 아이디
      text.setAdapter(adapter);       //한단어라서 구분자 필요 없음
       
        MultiAutoCompleteTextView mtext =
          (MultiAutoCompleteTextView) findViewById(R.id.Multi01);    //xml의 아이디
        mtext.setAdapter(adapter);
        mtext.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
        //구분하여야 되서 토그나이저를 사용
        //.CommaTokenizer()변경해가면 실습해보길
   }
}

============================================================================================================================================

3. @@@ 입력필터를 이용한 사용자 입력제한@@@

 

//입력창에 2개의 단어가 들어가고 모두 대문자로 표시된다. 

 

@@@ .java @@@

package android.weiget;

 

import android.app.Activity;
import android.os.Bundle;


import android.text.InputFilter;
import android.weiget.R;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.MultiAutoCompleteTextView;

 

public class Androi extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
         setContentView(R.layout.main);


     final String[] COLORS ={
        "red","green","orange","blue","pupple",
        "black","yellow","cyan","magenta"
      };

      ArrayAdapter<String> adapter =
       new ArrayAdapter<String>(
       this, android.R.layout.simple_dropdown_item_1line, COLORS);
      //변수명                Arry( 어디에,위치,해당변수명)
    

       //텍스트뷰
        AutoCompleteTextView text = 
          (AutoCompleteTextView) findViewById(R.id.Auto01);    //xml의 아이디
        text.setAdapter(adapter);     //한단어라서 구분자 필요 없음
       
        MultiAutoCompleteTextView mtext =
          (MultiAutoCompleteTextView) findViewById(R.id.Multi01); //xml의 아이디
        mtext.setAdapter(adapter);
        mtext.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
        //구분하여야 되서 토그나이저를 사용
        //.CommaTokenizer()변경해가면 실습해보길
       
        final EditText text_filtered =
      (EditText) findViewById(R.id.input);  // xml에서 불러올 id
     text_filtered.setFilters(new InputFilter[]
          {
               new InputFilter.AllCaps(),   //모두 대문자
               new InputFilter.LengthFilter(2)  //2개만
          }); 
    }
}

 

============================================================================================================================================

@@@ .xml @@@

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
  <TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
    <AutoCompleteTextView 
       android:id="@+id/Auto01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:completionHint="Pick a color or type your own"
       android:completionThreshold="1"
        />
    <MultiAutoCompleteTextView 
       android:id="@+id/Multi01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:completionHint="Pick a color or type your own"
       android:completionThreshold="1"
        />
    
   
    <EditText android:id="@+id/EditText01"
       android:layout_height="wrap_content"
       android:hint="type here"
       android:lines="4"
       android:layout_width="fill_parent" />
    <EditText android:id="@+id/EditText01"
       android:layout_height="wrap_content"
       android:hint="type here"
       
       android:layout_width="fill_parent" />
    
   <EditText android:id="@+id/input"
       android:layout_height="wrap_content"
       android:hint="type here"
       android:layout_width="fill_parent" />   
     
    <TextView android:id="@+id/TextView04"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="web"
       android:text="@string/blog_test" />
    <TextView android:id="@+id/TextView05"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="email"
       android:text="@string/Email_test" />
    <TextView android:id="@+id/TextView06"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="phone"
       android:text="@string/Call_test" />
    <TextView android:id="@+id/TextView07"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:autoLink="map"
       android:text="@string/Find_test" />
   
</LinearLayout>

============================================================================================================================================


Comments