나만의 개발노트

[안드로이드] inflate, toast, snapbar, AlertDialog 본문

[안드로이드]/[안드로이드] 공부 기록

[안드로이드] inflate, toast, snapbar, AlertDialog

노트포미 2023. 9. 25. 02:18

inflate

: 안드로이드에서 xml에 표기된 레이아웃들을 메모리에 로딩된 후 객체화 시키는 과정

  -> layout에 다른 layout을 넣을 수 있음

Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
	@Override
    public void onClick(View v){
    	LayoutInflater inflater = getLayoutInflater();
        //toastborder : xml파일, toast_Layout_root : toastborder.xml의 최상위 레이아웃 id
        View layout = inflater.inflate(R.layout.toastborder, (ViewGroup)findViewById(R.id.toast_Layout)root));
        
        //text : toastborder.xml의 textView 아이디
        TextView text = (TextView) layout.findViewById(R.id.text);
        
        Toast toast = new Toast(getApplicationContext());
        toast.setView(layout);
        
        toast.show();
        }
    }

 

snapbar

: 토스트(toast)와 비슷하지만, 아래에서 올라오는 메시지

 

[사용법]

1. design 추가해야함

    file -> Project Structure -> Modules(app) -> Dependencies -> "+"버튼 -> "com.android.support.design 추가

2. 실행 코드 작성

Snackbac.make(View v, "원하는 텍스트 입력", Snackbar.LENGTH_LONG).show();

*첫 인자 View의 역할 : ???

 

알림창(AlertDialog)

public void showMessage(){
	AlertDialog.Builder builder = new AlertDialog.Builder(this); //this는 무엇을 가리킬까?
    builder.setTitle("안내");
    builder.setMessage("종료하시겠습니까?");
    builder.setIcon(android.R.drawable.ic_diaLog_alert); //원하는 icon 지정
    
    //Posivite 버튼 누른 경우
    builder.setPositiveButton("예", new DialogInterface.OnClickListener(){
    	@Override
        public void onClick(DialogInterface dialog, int which){
        	//수행할 코드
        }
  	});
    
    builder.setNegativeButton("아니오", new DialogInterface.OnClickListener(){
    	@Override
        public void onClick(DialogInterface dialog, int which){
        	//수행할 코드
        }
  	});
    
    AlertDialog dialog = builder.create();
    dialog.show();
}