OpenFrameWork
오픈프레임워크_Day74
px
2015. 6. 29. 11:57
### : 목차 구분 기호
--- : 목차 내에 항목 구분 기호
@@@ : 태그 용도
--- : 목차 내에 항목 구분 기호
@@@ : 태그 용도
,,, : 같은 목차 내에 구분 기호
목차
1. 이론 및 정보
2. 설정 및 그 밖에
3. 소스코드 또는 실습
4. 과제
###################################
1. 이론 및 정보
-----------------------------------
* 안드로이드에서 간단한 파일 저장 클래스
SharedPreferences
-----------------------------------
* AndroidManifest.xml 에서 메인 변경
<intent-filter>를 가지고 있으면 메인이 됨
-----------------------------------
* android:visibility="gone"
gone은 객체 생성은 안함
invisible은 생성 되는데 안보이게
visible은 생성 되고 보이게
-----------------------------------
* LogCat
안드로이드에서 사용하는 로그 확인 프로그램
-----------------------------------
###################################
2. 설정 및 그 밖에
-----------------------------------
###################################
2. 설정 및 그 밖에
-----------------------------------
* LogCat
vervose - 모든 메세지
asset - 테스트 관련
로그캣 필터 만들기
-----------------------------------
* 프로젝트 생성 - AdapterApp
-----------------------------------
-----------------------------------
###################################
3. 소스코드 또는 실습
-----------------------------------
###################################
3. 소스코드 또는 실습
-----------------------------------
3-1
WorkSpace : ~\study\AndroidWork
/BasicWidgetApp/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.basicwidgetapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
</activity>
<activity android:name="SecondAcitivity" >
</activity>
<activity android:name="ThirdActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.basicwidgetapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
</activity>
<activity android:name="SecondAcitivity" >
</activity>
<activity android:name="ThirdActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
-----------------------------------
3-2
WorkSpace : ~\study\AndroidWork
/BasicWidgetApp/res/layout/activity_second.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- autotext : 자동 철자 교정 기능 사용여부 (true, false) -->
<!-- capitalize : 입력된 텍스트의 첫번째 글자를 대문자로 자동변경 -->
<!-- numeric : 숫자만 입력 가능 -->
<!-- digits : 특정 데이터만 입력 가능 -->
<!-- ... -->
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input Here!..."
android:maxLength="30"
android:maxWidth="200sp"
android:singleLine="true"
android:textColor="#FF0000FF"
android:textStyle="bold|italic" />
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="abc"
android:hint="Input Here!..."
android:maxWidth="200sp"
android:textColor="#FF0000FF" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onBtnDisplay"
android:text="EditText Content Display" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/chk1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student" />
<CheckBox
android:id="@+id/chk2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Salaryman" />
<CheckBox
android:id="@+id/chk3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Teacher" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/rg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/rdo1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="seoul" />
<RadioButton
android:id="@+id/rdo2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="paris" />
<RadioButton
android:id="@+id/rdo3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="london" />
</RadioGroup>
</LinearLayout>
<ToggleButton
android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="Turn off..."
android:textOn="Turn on..." />
<RatingBar
android:id="@+id/rBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:numStars="5"
android:rating="1.5"
android:stepSize="0.5" />
</LinearLayout>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- autotext : 자동 철자 교정 기능 사용여부 (true, false) -->
<!-- capitalize : 입력된 텍스트의 첫번째 글자를 대문자로 자동변경 -->
<!-- numeric : 숫자만 입력 가능 -->
<!-- digits : 특정 데이터만 입력 가능 -->
<!-- ... -->
<EditText
android:id="@+id/et1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Input Here!..."
android:maxLength="30"
android:maxWidth="200sp"
android:singleLine="true"
android:textColor="#FF0000FF"
android:textStyle="bold|italic" />
<EditText
android:id="@+id/et2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="abc"
android:hint="Input Here!..."
android:maxWidth="200sp"
android:textColor="#FF0000FF" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onBtnDisplay"
android:text="EditText Content Display" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<CheckBox
android:id="@+id/chk1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Student" />
<CheckBox
android:id="@+id/chk2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Salaryman" />
<CheckBox
android:id="@+id/chk3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Teacher" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/rg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/rdo1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="seoul" />
<RadioButton
android:id="@+id/rdo2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="paris" />
<RadioButton
android:id="@+id/rdo3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="london" />
</RadioGroup>
</LinearLayout>
<ToggleButton
android:id="@+id/toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOff="Turn off..."
android:textOn="Turn on..." />
<RatingBar
android:id="@+id/rBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:isIndicator="false"
android:numStars="5"
android:rating="1.5"
android:stepSize="0.5" />
</LinearLayout>
-----------------------------------
3-3
WorkSpace : ~\study\AndroidWork
/BasicWidgetApp/res/layout/activity_third.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progress1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="progressCircle"
android:textOff="Circle Start"
android:textOn="Circle Exit" />
<ProgressBar
android:id="@+id/progress2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="50"
android:progress="10" />
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="progressHorizontal"
android:textOff="Horizontal Start"
android:textOn="Horizontal Exit" />
<SeekBar
android:id="@+id/seek1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:max="20"
android:progress="5" />
<TextView
android:id="@+id/tvSeek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="5" />
</LinearLayout>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ProgressBar
android:id="@+id/progress1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="progressCircle"
android:textOff="Circle Start"
android:textOn="Circle Exit" />
<ProgressBar
android:id="@+id/progress2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="50"
android:progress="10" />
<ToggleButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="progressHorizontal"
android:textOff="Horizontal Start"
android:textOn="Horizontal Exit" />
<SeekBar
android:id="@+id/seek1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:max="20"
android:progress="5" />
<TextView
android:id="@+id/tvSeek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="5" />
</LinearLayout>
-----------------------------------
3-4
WorkSpace : ~\study\AndroidWork
/BasicWidgetApp/src/com/example/basicwidgetapp/SecondAcitivity.java
package com.example.basicwidgetapp;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
public class SecondAcitivity extends Activity {
EditText et1, et2;
TextView tv1, tv2;
CheckBox c1, c2, c3;
RadioGroup rg;
SharedPreferences shared;
ToggleButton tButton;
RatingBar rBar;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
c1 = (CheckBox) findViewById(R.id.chk1);
c2 = (CheckBox) findViewById(R.id.chk2);
c3 = (CheckBox) findViewById(R.id.chk3);
CheckHandler ch = new CheckHandler();
c1.setOnCheckedChangeListener(ch);
c2.setOnCheckedChangeListener(ch);
c3.setOnCheckedChangeListener(ch);
rg = (RadioGroup) findViewById(R.id.rg1);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (group.getId() == R.id.rg1) {
String city = null;
if (checkedId == R.id.chk1) {
city = "seoul";
} else if (checkedId == R.id.chk2) {
city = "paris";
} else if (checkedId == R.id.chk3) {
city = "london";
}
Toast.makeText(getApplicationContext(),
city + " is Checked", Toast.LENGTH_SHORT).show();
}
}
});
// 무명클래스로 TextWatchr 사용
TextWatcher tw = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
tv2.setText(String.valueOf(s.length()));
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
};
et1.addTextChangedListener(tw);
tButton = (ToggleButton)findViewById(R.id.toggle);
// SharedPreferences에서 값이 있는지 확인
shared = getSharedPreferences("toggleOnOff", MODE_PRIVATE);
if(shared.getString("onoff", "").equals("on")){
tButton.setChecked(true);
}else if(shared.getString("onoff", "").equals("off")){
tButton.setChecked(false);
}
tButton.setOnClickListener(new OnClickListener() {
// SharedPreferences의 자격을 얻는 방법
SharedPreferences.Editor editor = shared.edit();
@Override
public void onClick(View v) {
if(tButton.isChecked()==true){
editor.putString("onoff", "on");
}else{
editor.putString("onoff", "off");
}
// SharedPreferences에서 주의사항
// 뒷마무리, 반드시 해줘야함
editor.commit();
}
});
rBar = (RatingBar) findViewById(R.id.rBar);
rBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
Toast.makeText(getApplicationContext(),
String.valueOf(rating) + " 별 선택 됨", Toast.LENGTH_SHORT).show();
}
});
}
public void onBtnDisplay(View v) {
tv1.setText(et1.getText());
}
class CheckHandler implements OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
CheckBox ck = (CheckBox) buttonView;
if (isChecked == true) {
Toast.makeText(getApplicationContext(),
ck.getText() + " is Checked", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),
ck.getText() + " is unChecked", Toast.LENGTH_SHORT).show();
}
}
}
}
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;
public class SecondAcitivity extends Activity {
EditText et1, et2;
TextView tv1, tv2;
CheckBox c1, c2, c3;
RadioGroup rg;
SharedPreferences shared;
ToggleButton tButton;
RatingBar rBar;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);
tv1 = (TextView) findViewById(R.id.tv1);
tv2 = (TextView) findViewById(R.id.tv2);
c1 = (CheckBox) findViewById(R.id.chk1);
c2 = (CheckBox) findViewById(R.id.chk2);
c3 = (CheckBox) findViewById(R.id.chk3);
CheckHandler ch = new CheckHandler();
c1.setOnCheckedChangeListener(ch);
c2.setOnCheckedChangeListener(ch);
c3.setOnCheckedChangeListener(ch);
rg = (RadioGroup) findViewById(R.id.rg1);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (group.getId() == R.id.rg1) {
String city = null;
if (checkedId == R.id.chk1) {
city = "seoul";
} else if (checkedId == R.id.chk2) {
city = "paris";
} else if (checkedId == R.id.chk3) {
city = "london";
}
Toast.makeText(getApplicationContext(),
city + " is Checked", Toast.LENGTH_SHORT).show();
}
}
});
// 무명클래스로 TextWatchr 사용
TextWatcher tw = new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
tv2.setText(String.valueOf(s.length()));
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
};
et1.addTextChangedListener(tw);
tButton = (ToggleButton)findViewById(R.id.toggle);
// SharedPreferences에서 값이 있는지 확인
shared = getSharedPreferences("toggleOnOff", MODE_PRIVATE);
if(shared.getString("onoff", "").equals("on")){
tButton.setChecked(true);
}else if(shared.getString("onoff", "").equals("off")){
tButton.setChecked(false);
}
tButton.setOnClickListener(new OnClickListener() {
// SharedPreferences의 자격을 얻는 방법
SharedPreferences.Editor editor = shared.edit();
@Override
public void onClick(View v) {
if(tButton.isChecked()==true){
editor.putString("onoff", "on");
}else{
editor.putString("onoff", "off");
}
// SharedPreferences에서 주의사항
// 뒷마무리, 반드시 해줘야함
editor.commit();
}
});
rBar = (RatingBar) findViewById(R.id.rBar);
rBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
Toast.makeText(getApplicationContext(),
String.valueOf(rating) + " 별 선택 됨", Toast.LENGTH_SHORT).show();
}
});
}
public void onBtnDisplay(View v) {
tv1.setText(et1.getText());
}
class CheckHandler implements OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
CheckBox ck = (CheckBox) buttonView;
if (isChecked == true) {
Toast.makeText(getApplicationContext(),
ck.getText() + " is Checked", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),
ck.getText() + " is unChecked", Toast.LENGTH_SHORT).show();
}
}
}
}
-----------------------------------
3-5
WorkSpace : ~\study\AndroidWork
/BasicWidgetApp/src/com/example/basicwidgetapp/ThirdActivity.java
package com.example.basicwidgetapp;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.ToggleButton;
public class ThirdActivity extends Activity {
ProgressBar m_circle, m_horizontal;
boolean isRunning = false;
SeekBar seekBar;
TextView tvSeek;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
m_circle = (ProgressBar) findViewById(R.id.progress1);
m_horizontal = (ProgressBar) findViewById(R.id.progress2);
seekBar = (SeekBar) findViewById(R.id.seek1);
tvSeek = (TextView) findViewById(R.id.tvSeek);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tvSeek.setText("current : "+ progress);
}
});
}
public void progressCircle(View v) {
Log.d("ThirdActivity", "progressCircle Method Call");
ToggleButton t = (ToggleButton) v;
if (t.isChecked()) {
m_circle.setVisibility(View.VISIBLE);
} else {
m_circle.setVisibility(View.GONE);
}
}
public void progressHorizontal(View v) {
ToggleButton t = (ToggleButton) v;
if (t.isChecked()) {
// 쓰레드 교착상태로 안됨
// for (int i = 11; i < 50; i++) {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// m_horizontal.incrementProgressBy(i);
// }
new HorizontalThread().start();
isRunning = true;
} else {
isRunning = false;
}
}
class HorizontalThread extends Thread {
@Override
public void run() {
int i = 0;
while (isRunning) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (i == 50) {
i = 0;
m_horizontal.setProgress(i);
}
i += 10;
m_horizontal.incrementProgressBy(i);
}
}
}
}
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.ToggleButton;
public class ThirdActivity extends Activity {
ProgressBar m_circle, m_horizontal;
boolean isRunning = false;
SeekBar seekBar;
TextView tvSeek;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
m_circle = (ProgressBar) findViewById(R.id.progress1);
m_horizontal = (ProgressBar) findViewById(R.id.progress2);
seekBar = (SeekBar) findViewById(R.id.seek1);
tvSeek = (TextView) findViewById(R.id.tvSeek);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tvSeek.setText("current : "+ progress);
}
});
}
public void progressCircle(View v) {
Log.d("ThirdActivity", "progressCircle Method Call");
ToggleButton t = (ToggleButton) v;
if (t.isChecked()) {
m_circle.setVisibility(View.VISIBLE);
} else {
m_circle.setVisibility(View.GONE);
}
}
public void progressHorizontal(View v) {
ToggleButton t = (ToggleButton) v;
if (t.isChecked()) {
// 쓰레드 교착상태로 안됨
// for (int i = 11; i < 50; i++) {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// m_horizontal.incrementProgressBy(i);
// }
new HorizontalThread().start();
isRunning = true;
} else {
isRunning = false;
}
}
class HorizontalThread extends Thread {
@Override
public void run() {
int i = 0;
while (isRunning) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (i == 50) {
i = 0;
m_horizontal.setProgress(i);
}
i += 10;
m_horizontal.incrementProgressBy(i);
}
}
}
}
-----------------------------------
3-6
WorkSpace : ~\study\AndroidWork
/AdapterApp/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.adapterapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ListViewAcitivity"></activity>
<activity android:name="SpinnerViewAcitivity"></activity>
<activity android:name="AutoAcitivity"></activity>
<activity android:name="GalleryAcitivity"></activity>
<activity android:name="GridViewAcitivity"></activity>
<activity android:name="FlipperAcitivity"></activity>
</application>
</manifest>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.adapterapp"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ListViewAcitivity"></activity>
<activity android:name="SpinnerViewAcitivity"></activity>
<activity android:name="AutoAcitivity"></activity>
<activity android:name="GalleryAcitivity"></activity>
<activity android:name="GridViewAcitivity"></activity>
<activity android:name="FlipperAcitivity"></activity>
</application>
</manifest>
-----------------------------------
3-7
WorkSpace : ~\study\AndroidWork
/AdapterApp/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btnList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use ListView" />
<Button
android:id="@+id/btnSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use SpinnerView" />
<Button
android:id="@+id/btnAuto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use AutoCompleteTextView" />
<Button
android:id="@+id/btnGallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use Gallery" />
<Button
android:id="@+id/btnGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use GridView" />
<Button
android:id="@+id/btnFlipper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="How to use ViewFlipper" />
</LinearLayout>
-----------------------------------
3-8
WorkSpace : ~\study\AndroidWork
/AdapterApp/src/com/example/adapterapp/MainActivity.java
package com.example.adapterapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
Button btnList, btnSpinner, btnAuto, btnGallery, btnGrid, btnFlipper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnList = (Button) findViewById(R.id.btnList);
btnSpinner = (Button) findViewById(R.id.btnSpinner);
btnAuto = (Button) findViewById(R.id.btnAuto);
btnGallery = (Button) findViewById(R.id.btnGallery);
btnGrid = (Button) findViewById(R.id.btnGrid);
btnFlipper = (Button) findViewById(R.id.btnFlipper);
btnList.setOnClickListener(this);
btnSpinner.setOnClickListener(this);
btnAuto.setOnClickListener(this);
btnGallery.setOnClickListener(this);
btnGrid.setOnClickListener(this);
btnFlipper.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Button b = (Button) v;
Intent intent = null;
switch (b.getId()) {
case R.id.btnList:
intent = new Intent(getApplicationContext(), ListViewAcitivity.class);
break;
case R.id.btnSpinner:
intent = new Intent(getApplicationContext(), SpinnerViewAcitivity.class);
break;
case R.id.btnAuto:
intent = new Intent(getApplicationContext(), AutoAcitivity.class);
break;
case R.id.btnGallery:
intent = new Intent(getApplicationContext(), GalleryAcitivity.class);
break;
case R.id.btnGrid:
intent = new Intent(getApplicationContext(), GridViewAcitivity.class);
break;
case R.id.btnFlipper:
intent = new Intent(getApplicationContext(), FlipperAcitivity.class);
break;
}
if (intent != null) {
startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
Button btnList, btnSpinner, btnAuto, btnGallery, btnGrid, btnFlipper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnList = (Button) findViewById(R.id.btnList);
btnSpinner = (Button) findViewById(R.id.btnSpinner);
btnAuto = (Button) findViewById(R.id.btnAuto);
btnGallery = (Button) findViewById(R.id.btnGallery);
btnGrid = (Button) findViewById(R.id.btnGrid);
btnFlipper = (Button) findViewById(R.id.btnFlipper);
btnList.setOnClickListener(this);
btnSpinner.setOnClickListener(this);
btnAuto.setOnClickListener(this);
btnGallery.setOnClickListener(this);
btnGrid.setOnClickListener(this);
btnFlipper.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Button b = (Button) v;
Intent intent = null;
switch (b.getId()) {
case R.id.btnList:
intent = new Intent(getApplicationContext(), ListViewAcitivity.class);
break;
case R.id.btnSpinner:
intent = new Intent(getApplicationContext(), SpinnerViewAcitivity.class);
break;
case R.id.btnAuto:
intent = new Intent(getApplicationContext(), AutoAcitivity.class);
break;
case R.id.btnGallery:
intent = new Intent(getApplicationContext(), GalleryAcitivity.class);
break;
case R.id.btnGrid:
intent = new Intent(getApplicationContext(), GridViewAcitivity.class);
break;
case R.id.btnFlipper:
intent = new Intent(getApplicationContext(), FlipperAcitivity.class);
break;
}
if (intent != null) {
startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
-----------------------------------
###################################4. 과제
-----------------------------------
4-1
프로젝트 문서 만들기, 프로젝트 수정해서 말씀드리기
-----------------------------------
4-2
-----------------------------------
4-3
-----------------------------------
4-4
-----------------------------------
4-5
/BasicWidgetApp/src/com/example/basicwidgetapp/SecondAcitivity.java
에서 checkBox 안됨
-----------------------------------
###################################
5. 과제 해결
-----------------------------------
5. 과제 해결
-----------------------------------
-----------------------------------
###################################
6. 기타
----------------------------------- -----------------------------------