AutoCompleteTextView (자동완성 텍스트뷰)
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView"
android:completionHint="선택하세요"
android:completionThreshold="2" />
MultiAutoCompleteTextView (멀티 자동완성 텍스트 뷰)
<MultiAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/multiAutoCompleteTextView"
android:completionHint="선택하세요"
android:completionThreshold="2" />
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AutoCompleteTextView auto = findViewById(R.id.autoCompleteTextView);
MultiAutoCompleteTextView multi = findViewById(R.id.multiAutoCompleteTextView);
// 자동완성에 사용할 텍스트 데이터를 String 타입 배열로 생성
String[] items = {
"Coffee", "Computer", "Laptop", "Radio", "Robot", "Love",
"컴퓨터", "로봇", "로봇청소기", "청소기"
};
// ---------------------- AutoCompleteTextView 설정 ----------------------
// ArrayAdapter 객체 생성 => 제네릭타입 String 지정(자동 완성에 사용될 데이터의 타입)
// => 파라미터1) 현재 컨텍스트 전달
// => 파라미터2) android.R.layout.XXX 형태로 자동완성텍스트가 표시될 형식(레이아웃)을 전달
// => 파라미터3) 목록으로 사용할 데이터가 저장된 객체(String[] 또는 List 객체 등)
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, items);
// AutoCompleteTextView 객체의 setAdapter() 메서드를 호출하여 ArrayAdapter 객체를 전달
auto.setAdapter(adapter);
// ---------------------- MultiAutoCompleteTextView 설정 ----------------------
List<String> itemList = Arrays.asList(items);
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, items);
MultiAutoCompleteTextView.CommaTokenizer token = new MultiAutoCompleteTextView.CommaTokenizer();
multi.setTokenizer(token);
multi.setAdapter(adapter2);
}
}
ProgressBar (프로그레스 바)
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="80" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnStart"
android:text="시작"
android:textSize="20sp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnStop"
android:text="종료"
android:textSize="20sp"/>
</LinearLayout>
ProgressBar progressBar = findViewById(R.id.progressBar);
progressBar.setProgress(0);
progressBar.setSecondaryProgress(50);
Button btnStart = findViewById(R.id.btnStart);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 별도의 다이얼로그를 생성하여 ProgressBar 를 사용하려면 ProgressDialog 객체를 활용
ProgressDialog dialog = new ProgressDialog(MainActivity.this);
// ProgressBar 스타일 설정
// 1. STYLE_HORIZONTAL : 가로막대 형식으로 표시하며, 진행상황(진척도) 등을 알릴 때 주로 사용
// dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 2. STYLE_SPINNER : 진행 중이라는 상태를 표시하기 유용하며, 중간과정 확인 불가
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("데이터 확인 중");
dialog.show();
}
});
SeekBar (시크 바)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/seekBar"
android:progress="20" />
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/tvSeekBar"
android:text="00"
android:textSize="20sp" />
</LinearLayout>
SeekBar seekBar = findViewById(R.id.seekBar);
final TextView tvSeekBar = findViewById(R.id.tvSeekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
// SeekBar 게이지가 변경될 때 호출되는 메서드
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tvSeekBar.setText(progress + "");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
RatingBar (레이팅 바)
<RatingBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
android:numStars="5"
android:rating="1"
android:stepSize="0.5" />
RatingBar ratingBar = findViewById(R.id.ratingBar);
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
Toast.makeText(MainActivity.this, "별점 : " + rating, Toast.LENGTH_SHORT).show();
}
});
'BackEnd > Android' 카테고리의 다른 글
간단한 예약 프로그램 구현하기 (0) | 2020.06.17 |
---|---|
고급 위젯 - 날짜/시간 관련 (0) | 2020.06.16 |
그리드 레이아웃으로 계산기 구현하기 (0) | 2020.06.16 |
for문의 초기변수를 내부에서 사용하는 방법 (0) | 2020.06.16 |
레이아웃 (0) | 2020.06.12 |