Your name
Author

안드로이드(Android) 기본 스피너(spinner)

1.java 소스

public class Ex07_SpinnerActivity extends Activity implements
OnItemSelectedListener {
ArrayList<String> arraylist;

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

arraylist = new ArrayList<String>();
arraylist.add("data0");
arraylist.add("data1");
arraylist.add("data2");
arraylist.add("data3");

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
android.R.layout.simple_spinner_dropdown_item, arraylist); 
                               //스피너 속성
Spinner sp = (Spinner) this.findViewById(R.id.spinner);
sp.setPrompt("골라봐"); // 스피너 제목
sp.setAdapter(adapter);
sp.setOnItemSelectedListener(this);

}

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(this, arraylist.get(arg2), Toast.LENGTH_LONG).show();//해당목차눌렸을때
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub

}
}


2.xml 소스
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>






스피너도 종류가 있는데 일단 기본적인 스피드 추가 방법!
다음에는 스피너 종류, 버튼종류, 스피너 속성 에대해서 !! 





안드로이드[Android] 다이얼로그(Dialog) 속성정리




1Back키 눌렀을 경우 Dialog Cancle 여부 설정

 
  mDialog.setCancelable(false); // true : cancle , false : no cancle

2) Dialog 호출시 배경화면이 검정색으로 바뀌는 것 막기 !
 
  mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

3) Dialog 밖을 터치 했을 경우 Dialog 사라지게 하기
 
  mDialog.setCanceledOnTouchOutside(true);

4) Dialog 밖의 View를 터치할 수 있게 하기 (다른 View를 터치시 Dialog Dismiss)
 
  mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
             WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);

5) Dialog 자체 배경을 투명하게 하기
 
  mDialog.getWindow().setBackgroundDrawable
             (new ColorDrawable(android.graphics.Color.TRANSPARENT));


6) Dialog Cancle시 Event 받기 

 
  mDialog.setOnCancelListener(OnCancelListener listener) 



7) Dialog Show시 Event 받기 

 
  mDialog.setOnShowListener(OnShowListener listener) 



8) Dialog Dismiss시 Event 받기 

 
  mDialog.setOnDismissListener(OnDismissListener listener) 





import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnDismissListener;
import android.content.DialogInterface.OnShowListener;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    private Dialog mDialog = null;
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         
        createDialog();
         
    }
     
    public void onClick(View v) {
        switch (v.getId()) {
         
        case R.id.btn_click:
             
            Toast.makeText(MainActivity.this, "Activity Button 입니다.",
                    Toast.LENGTH_SHORT).show();
         
        case R.id.btn_ok:
             
            dismissDialog();
             
            break;
             
        case R.id.btn_cancle:
             
            dismissDialog();
             
            break;
 
        default:
            break;
        }
    }
     
    private void createDialog() {
        final View innerView = getLayoutInflater().inflate(R.layout.dialog, null);
         
        mDialog = new Dialog(this);
        mDialog.setTitle("Title");
        mDialog.setContentView(innerView);
         
        // Back키 눌렀을 경우 Dialog Cancle 여부 설정
        mDialog.setCancelable(true);
         
        // Dialog 생성시 배경화면 어둡게 하지 않기
        mDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
         
        // Dialog 밖을 터치 했을 경우 Dialog 사라지게 하기
//      mDialog.setCanceledOnTouchOutside(true);
         
        // Dialog 밖의 View를 터치할 수 있게 하기 (다른 View를 터치시 Dialog Dismiss)
        mDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
         
        // Dialog 자체 배경을 투명하게 하기
//      mDialog.getWindow().setBackgroundDrawable
//              (new ColorDrawable(android.graphics.Color.TRANSPARENT));
         
        // Dialog Cancle시 Event 받기
        mDialog.setOnCancelListener(new OnCancelListener() {
             
            @Override
            public void onCancel(DialogInterface dialog) {
                Toast.makeText(MainActivity.this, "cancle listener",
                        Toast.LENGTH_SHORT).show();
            }
        });
         
        // Dialog Show시 Event 받기
        mDialog.setOnShowListener(new OnShowListener() {
             
            @Override
            public void onShow(DialogInterface dialog) {
                Toast.makeText(MainActivity.this, "show listener",
                        Toast.LENGTH_SHORT).show();
            }
        });
         
        // Dialog Dismiss시 Event 받기
        mDialog.setOnDismissListener(new OnDismissListener() {
             
            @Override
            public void onDismiss(DialogInterface dialog) {
                Toast.makeText(MainActivity.this, "dismiss listener",
                        Toast.LENGTH_SHORT).show();
            }
        });
         
        mDialog.show();
         
    }
     
    private void dismissDialog() {
        if(mDialog != null && mDialog.isShowing()) {
            mDialog.dismiss();
        }
    }
 
}



Powered by Blogger.