2010년 3월 29일 월요일

ProgressBar, Tab 동적 기본 예제..

#. 진행상태 표시

  -. 백그라운드 스레드를 사용해 해당작업 처리.
  -. 완료시점 setMax()로 지정, setProgress()로 진행상황 설정(진행상태 확인 getProcess())
  -. 종료시점 명확하지 않을경우 setIndeterminate() 메소드 값 true로 넘겨줌
    => 진행 상황에 관계없이 계속해서 작업 중이라고 표현.


# 탭(Tab) 기본 예제

  -. 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">
<TabHost android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<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"
android:paddingTop="62px">
<AnalogClock android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
/>
<Button android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="단순한 버튼"
/>
</FrameLayout>
</TabHost>
</LinearLayout>


  -. source
package my.app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TabHost;

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

        TabHost tabs = (TabHost) findViewById(R.id.tabhost);

        tabs.setup();

        // 탭을 사용하기전 반드시 TabHost 인스턴스의 setup()을 호출해얗란다.
        TabHost.TabSpec spec = tabs.newTabSpec("tag1");

        spec.setContent(R.id.tab1); // 내용 불러옴
        spec.setIndicator("시계"); // 탭 글자
        tabs.addTab(spec); // 내용 추가

        spec = tabs.newTabSpec("tag2");
        spec.setContent(R.id.tab2);
        spec.setIndicator("버튼");
        tabs.addTab(spec);

        tabs.setCurrentTab(0); // 기본적으로 표시할 탭

    }
}



# 동적으로 탭 생성
  -. 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">
<TabHost android:id="@+id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<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"
android:paddingTop="64px">
<Button android:id="@+id/buttontab"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="단순한 버튼"
/>
</FrameLayout>
</TabHost>
</LinearLayout>


   -. source
package my.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AnalogClock;
import android.widget.Button;
import android.widget.TabHost;

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

        final TabHost tabs = (TabHost) findViewById(R.id.tabhost);

        tabs.setup();

        // 탭을 사용하기전 반드시 TabHost 인스턴스의 setup()을 호출해야한다.
        TabHost.TabSpec spec = tabs.newTabSpec("buttontab");

        spec.setContent(R.id.buttontab);
        spec.setIndicator("버튼");
        tabs.addTab(spec);

        tabs.setCurrentTab(0);

        Button btn = (Button)tabs.getCurrentView().findViewById(R.id.buttontab);
        btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
TabHost.TabSpec spec = tabs.newTabSpec("시계");

// 해당하는 탭 내용에 들어갈 위젯 생성하는 기능
spec.setContent(new TabHost.TabContentFactory() {

@Override
public View createTabContent(String tag) {
return (new AnalogClock(Tab.this));
}
});
spec.setIndicator("시계");
tabs.addTab(spec);
}
});


    }
}

댓글 없음:

댓글 쓰기