'전체 글'에 해당되는 글 132건

커스텀 토스트, 커스텀 다이얼로그

Posted by PeEn
2019. 10. 23. 15:31 Programing/Android

버튼 클릭 시 다이얼로그 창 띄어주고 데이터 입력.

확인 누르면 EditText 수정

취소하면 Toast 커스텀한 view가 보여짐

 

이하 소스코드


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/tvName"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:enabled="false"
        android:hint="name" />

    <EditText
        android:id="@+id/tvEmail"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:enabled="false"
        android:hint="email " />

    <Button
        android:id="@+id/btnClick"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:layout_marginRight="100dp"
        android:layout_weight="1"
        android:text="수정" />

</LinearLayout>

dialog.xml

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

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="사용자 이름"
        android:textSize="24sp" />

    <EditText
        android:id="@+id/edtName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="이메일"
        android:textSize="24sp" />

    <EditText
        android:id="@+id/edtEmail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName"
        android:text="Name"
        android:textSize="18sp" />
</LinearLayout>

toast1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_light"
    android:gravity="center_horizontal|center_vertical">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@android:drawable/btn_star_big_on" />

    <TextView
        android:id="@+id/tvToast"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="취소됬습니다"
        android:textSize="18sp" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        app:srcCompat="@android:drawable/btn_star_big_on" />

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {
    Button btnClick;
    View dialview, toastview;
    TextView tvName,tvEmail, tvToast;
    EditText edtEmail,edtName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btnClick = (Button)findViewById(R.id.btnClick);
        tvName = (TextView)findViewById(R.id.tvName);
        tvEmail = (TextView)findViewById(R.id.tvEmail);


        btnClick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialview = (View)View.inflate(MainActivity.this,R.layout.dialog,null);
                AlertDialog.Builder dial = new AlertDialog.Builder(MainActivity.this);
                dial.setView(dialview);
                dial.setPositiveButton("확인", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        edtName = (EditText)dialview.findViewById(R.id.edtName);
                        edtEmail = (EditText)dialview.findViewById(R.id.edtEmail);
                        tvName.setText(edtName.getText());
                        tvEmail.setText(edtEmail.getText());
                    }
                });
                dial.setNegativeButton("취소", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast toast = new Toast(MainActivity.this);

                        toastview = (View)View.inflate(MainActivity.this,R.layout.toast1,null);
                        tvToast = (TextView)toastview.findViewById(R.id.tvToast);
                        tvToast.setText("취소했습니다.");
                        toast.setView(toastview);
                        toast.show();
                    }
                });
                dial.show();
            }
        });
    }
}

 

 

'Programing > Android' 카테고리의 다른 글

Adapter, GridView와 ListView 적용법  (0) 2019.11.25
FCM 앱 알람  (0) 2019.11.02
배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제  (0) 2019.10.21
탭호스트  (0) 2019.10.21
날짜 시간 위젯  (0) 2019.10.21

CSS 수평 리스트, 테이블

Posted by PeEn
2019. 10. 22. 10:47 Programing/Web Programming

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	
	<style>
	ul{
		text-align:center;
		border-top: 1px solid red; border-bottom:1px solid red; padding : 10px;
	}
	ul li{
		display:inline;
		padding:10px;
		letter-spacing:10px
	}
	ul li a{ text-decoration:none; color:black;}
	ul li a:hover{ text-decoration:underline;}
	</style>
</head>
	
<body>
	<ul>
		<li><a href="#">Home</a></li>
		<li><a href="#">Blog</a></li>
		<li><a href="#">About</a></li>
		<li><a href="#">Contact</a></li>
	</ul>
</body>
</html>

 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	
	<style>
	body{
	background:green url(image.png) right;
	background-repeat: no-repeat;
}
	ul{
		text-align:center;
		width:50%;
		margin-left:auto;
		margin-right:auto;
		border-top: 1px solid red; border-bottom:1px solid red; padding : 10px;
	}
	ul li{
		display:inline;
		padding:10px;
		text-align:center;
		letter-spacing:10px
	}
	ul li a{ text-decoration:none; color:black;}
	ul li a:hover{ text-decoration:underline; background:black; color:red;}
	
	div.one {
		margin-left:auto;
		margin-right:auto;
		width:50%;
		border: 5px dotted red;
		background:yellow;
	}
	</style>
</head>
	
<body>
	<ul>
		<li><a href="#">WEB_PROGRAMING</a></li>
		<li><a href="#">CSS</a></li>
		<li><a href="#">JAVACRIPT</a></li>
	</ul>
	<div class="one">과거에는 HTML에 디자인적 요소를 포함하여 작성하는 것이 일반적이었다. 다시 말해서 온갖 레이아웃, 디자인 정보를 HTML 안에 욱여넣다 보니 HTML의 본연의 목적인 구조화된 문서가 아닌 디자인을 위한 문서로 전락하고 말았다. 표를 작성해야 하는 <table> 태그가 레이아웃을 구성하는 용도로 쓰이는 등으로 인해 HTML 소스코드만 보면 이 문서가 어떤 문서인지 전문가조차 알기 힘든 상황이었다.[2]
</div>
	</div>
</body>
</html>

테이블 

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	
	<style>
	table{
	width:100%;		
	}

	table,th,td{
	border: 1px dotted gray;
	}

	#at1{
	background-color:blue;
	color:white;
	}

	#at2{
	background-color:yellow;
	color:black;
	}

	td{
	text-align:center;
	}
	</style>
</head>
	
<body>
	<table border="1">
	<caption>VIP 고객리스트</caption>
	<tr>
		<td id="at1">학과</td>
		<td id="at1">성명</td>
		<td id="at1">휴대폰</td>
	</tr>

	<tr>
		<td rowspan="4">스마트미디어</td>
		<td>김철수</td>
		<td>010-1111-1111</td>
	</tr>

	<tr>
		<td id="at2">김영희</td>
		<td id="at2">010-1111-1112</td>
	</tr>

	<tr>
		<td>김희</td>
		<td>010-1111-1113</td>
	</tr>

	<tr>
		<td id="at2">희s</td>
		<td id="at2">010-1111-1114</td>
	</tr>
	
</body>
</html>

'Programing > Web Programming' 카테고리의 다른 글

HTML 마우스 올리면 사이즈 조절  (0) 2019.10.31
HTML 투명도  (0) 2019.10.31
img,video,audio 삽입 | table | fieldset | input | button  (0) 2019.10.10
IIS 서버 HTML  (0) 2019.10.01
웹프로그래밍 2. 테이블  (0) 2019.09.17

배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제

Posted by PeEn
2019. 10. 21. 15:40 Programing/Android

1. activity_main.xml

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="5"
    android:orientation="vertical"
    android:rowCount="9">

    <EditText
        android:id="@+id/Edit1"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자1 입력" />

    <EditText
        android:id="@+id/Edit2"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:hint="숫자2 입력" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/BtnNum0"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="0" />

        <Button
            android:id="@+id/BtnNum1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="1" />

        <Button
            android:id="@+id/BtnNum2"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="2" />

        <Button
            android:id="@+id/BtnNum3"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="3" />

        <Button
            android:id="@+id/BtnNum4"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="4" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:id="@+id/BtnNum5"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="5" />

        <Button
            android:id="@+id/BtnNum6"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="6" />

        <Button
            android:id="@+id/BtnNum7"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="7" />

        <Button
            android:id="@+id/BtnNum8"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="8" />

        <Button
            android:id="@+id/BtnNum9"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="9" />
    </LinearLayout>
    <Button
        android:id="@+id/BtnAdd"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_row="4"
        android:text="더하기" />

    <Button
        android:id="@+id/BtnSub"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_row="5"
        android:text="빼기" />

    <Button
        android:id="@+id/BtnMul"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_row="6"
        android:text="곱하기" />

    <Button
        android:id="@+id/BtnDiv"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_row="7"
        android:text="나누기" />

    <TextView
        android:id="@+id/TextResult"
        android:layout_column="0"
        android:layout_columnSpan="5"
        android:layout_gravity="fill_horizontal"
        android:layout_margin="5dp"
        android:layout_row="8"
        android:text="계산 결과 : "
        android:textColor="#FF0000"
        android:textSize="20dp" />

</GridLayout>

2. MainActivity.java

    EditText edit1, edit2;
    Button btnAdd, btnSub, btnMul, btnDiv;
    TextView textResult;
    String num1, num2;
    Integer result;

    // 10개 숫자 버튼 배열
    Button[] numButtons = new Button[10];
    // 10개 숫자 버튼의 id 값 배열
    Integer[] numBtnIDs = { R.id.BtnNum0, R.id.BtnNum1, R.id.BtnNum2,
            R.id.BtnNum3, R.id.BtnNum4, R.id.BtnNum5, R.id.BtnNum6,
            R.id.BtnNum7, R.id.BtnNum8, R.id.BtnNum9 };
    int i; // 증가값 용도

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setTitle("그리드레이아웃 계산기");

        edit1 = (EditText) findViewById(R.id.Edit1);
        edit2 = (EditText) findViewById(R.id.Edit2);

        btnAdd = (Button) findViewById(R.id.BtnAdd);
        btnSub = (Button) findViewById(R.id.BtnSub);
        btnMul = (Button) findViewById(R.id.BtnMul);
        btnDiv = (Button) findViewById(R.id.BtnDiv);

        textResult = (TextView) findViewById(R.id.TextResult);

        btnAdd.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) + Integer.parseInt(num2);
                textResult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });

        btnSub.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) - Integer.parseInt(num2);
                textResult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });

        btnMul.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) * Integer.parseInt(num2);
                textResult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });

        btnDiv.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View arg0, MotionEvent arg1) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                result = Integer.parseInt(num1) / Integer.parseInt(num2);
                textResult.setText("계산 결과 : " + result.toString());
                return false;
            }
        });

        // 숫자 버튼 10개를 대입
        for (i = 0; i < numBtnIDs.length; i++) {
            numButtons[i] = (Button) findViewById(numBtnIDs[i]);
        }
        // 숫자 버튼 10개에 대해서 클릭이벤트 처리
        for (i = 0; i < numBtnIDs.length; i++) {

            final int index; // 주의! 꼭 필요함..
            index = i;

            numButtons[index].setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // 포커스가 되어 있는 에디트텍스트에 숫자 추가
                    if (edit1.isFocused() == true) {
                        num1 = edit1.getText().toString()
                                + numButtons[index].getText().toString();
                        edit1.setText(num1);
                    } else if (edit2.isFocused() == true) {
                        num2 = edit2.getText().toString()
                                + numButtons[index].getText().toString();
                        edit2.setText(num2);
                    } else {
                        Toast.makeText(getApplicationContext(),
                                "먼저 에디트텍스트를 선택하세요",Toast.LENGTH_SHORT).show();

                    }

                }
            });

        }

    }

}

'Programing > Android' 카테고리의 다른 글

FCM 앱 알람  (0) 2019.11.02
커스텀 토스트, 커스텀 다이얼로그  (0) 2019.10.23
탭호스트  (0) 2019.10.21
날짜 시간 위젯  (0) 2019.10.21
ContextMenu  (0) 2019.10.21

탭호스트

Posted by PeEn
2019. 10. 21. 15:38 Programing/Android

1.activity_main.xml

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1" >

            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/dog" />

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/cat" />

            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/rabbit" />

            <ImageView
                android:id="@+id/imageView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:src="@drawable/horse" />
        </FrameLayout>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#F0F000" >
        </TabWidget>
    </LinearLayout>

</TabHost>

2.MainActivity.java

public class MainActivity extends TabActivity {

	@SuppressWarnings("deprecation")
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		TabHost tabHost = getTabHost();

		TabSpec tabSpec1 = tabHost.newTabSpec("TAG1").setIndicator("강아지");
		tabSpec1.setContent(R.id.imageView1);
		tabHost.addTab(tabSpec1);

		TabSpec tabSpec2 = tabHost.newTabSpec("TAG2").setIndicator("고양이");
		tabSpec2.setContent(R.id.imageView2);
		tabHost.addTab(tabSpec2); 

		TabSpec tabSpec3 = tabHost.newTabSpec("TAG3").setIndicator("토끼");
		tabSpec3.setContent(R.id.imageView3);
		tabHost.addTab(tabSpec3);

		TabSpec tabSpec4 = tabHost.newTabSpec("TAG4").setIndicator("말");
		tabSpec4.setContent(R.id.imageView4);
		tabHost.addTab(tabSpec4);
		
		tabHost.setCurrentTab(0);

	}

    
}

 

 

'Programing > Android' 카테고리의 다른 글

커스텀 토스트, 커스텀 다이얼로그  (0) 2019.10.23
배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제  (0) 2019.10.21
날짜 시간 위젯  (0) 2019.10.21
ContextMenu  (0) 2019.10.21
Android LineChart  (0) 2019.10.16

날짜 시간 위젯

Posted by PeEn
2019. 10. 21. 15:35 Programing/Android

1. activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <Chronometer
            android:id="@+id/chronometer1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#CCCCCC"
            android:format=" 예약에 걸린 시간  %s "
            android:gravity="center"
            android:textSize="20dp" />
    </LinearLayout>

    <RadioGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/rdoCal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="날짜 설정" />

        <RadioButton
            android:id="@+id/rdoTime"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="시간 설정" />
    </RadioGroup>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center" >

            <DatePicker
                android:datePickerMode="spinner"
                android:id="@+id/datePicker1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center" />

            <TimePicker
                android:timePickerMode="spinner"
                android:id="@+id/timePicker1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center" />
        </FrameLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#CCCCCC"
        android:gravity="center" >

        <TextView
            android:id="@+id/tvYear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0000" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="년" />

        <TextView
            android:id="@+id/tvMonth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="월" />

        <TextView
            android:id="@+id/tvDay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="일" />

        <TextView
            android:id="@+id/tvHour"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="시" />

        <TextView
            android:id="@+id/tvMinute"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="00" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="분 예약됨" />
    </LinearLayout>

</LinearLayout>

2. MainActivity.java

	Chronometer chrono;
	RadioButton rdoCal, rdoTime;
	DatePicker dPicker;
	TimePicker tPicker;
	TextView tvYear, tvMonth, tvDay, tvHour, tvMinute;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		setTitle("시간 예약");

		// 크로노미터
		chrono = (Chronometer) findViewById(R.id.chronometer1);

		// 라디오버튼 2개
		rdoCal = (RadioButton) findViewById(R.id.rdoCal);
		rdoTime = (RadioButton) findViewById(R.id.rdoTime);

		// FrameLayout의 2개 위젯
		dPicker = (DatePicker) findViewById(R.id.datePicker1);
		tPicker = (TimePicker) findViewById(R.id.timePicker1);

		// 텍스트뷰 중에서 연,월,일,시,분 숫자
		tvYear = (TextView) findViewById(R.id.tvYear);
		tvMonth = (TextView) findViewById(R.id.tvMonth);
		tvDay = (TextView) findViewById(R.id.tvDay);
		tvHour = (TextView) findViewById(R.id.tvHour);
		tvMinute = (TextView) findViewById(R.id.tvMinute);

		// 처음에는 2개를 안보이게 설정
		rdoCal.setVisibility(View.INVISIBLE);
		rdoTime.setVisibility(View.INVISIBLE);
		tPicker.setVisibility(View.INVISIBLE);
		dPicker.setVisibility(View.INVISIBLE);

		rdoCal.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				tPicker.setVisibility(View.INVISIBLE);
				dPicker.setVisibility(View.VISIBLE);
			}
		});

		rdoTime.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				tPicker.setVisibility(View.VISIBLE);
				dPicker.setVisibility(View.INVISIBLE);
			}
		});

		// 크로노미터를 클릭하면..타이머 시작
		chrono.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				chrono.setBase(SystemClock.elapsedRealtime());
				chrono.start();
				chrono.setTextColor(Color.RED);
				rdoCal.setVisibility(View.VISIBLE);
				rdoTime.setVisibility(View.VISIBLE);
			}
		});

		// 크로노미터를 롱클릭하면..타이머 중지
		tvYear.setOnLongClickListener(new View.OnLongClickListener() {
			public boolean onLongClick(View v) {
				chrono.stop();
				chrono.setTextColor(Color.BLUE);

				tvYear.setText(Integer.toString(dPicker.getYear()));
				tvMonth.setText(Integer.toString(1 + dPicker.getMonth()));
				tvDay.setText(Integer.toString(dPicker.getDayOfMonth()));

				tvHour.setText(Integer.toString(tPicker.getCurrentHour()));
				tvMinute.setText(Integer.toString(tPicker.getCurrentMinute()));

				rdoCal.setVisibility(View.INVISIBLE);
				rdoTime.setVisibility(View.INVISIBLE);
				tPicker.setVisibility(View.INVISIBLE);
				dPicker.setVisibility(View.INVISIBLE);
				return false;

			}
		});

	}

}

'Programing > Android' 카테고리의 다른 글

커스텀 토스트, 커스텀 다이얼로그  (0) 2019.10.23
배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제  (0) 2019.10.21
탭호스트  (0) 2019.10.21
ContextMenu  (0) 2019.10.21
Android LineChart  (0) 2019.10.16

ContextMenu

Posted by PeEn
2019. 10. 21. 15:23 Programing/Android

* 콘텍스트메뉴 기본 사용

012

1. ActivityMain 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/baseLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="배경색 변경" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="버튼 변경" />

</LinearLayout>

2.MainActivity.java

public class MainActivity extends AppCompatActivity  {

    LinearLayout baseLayout;
    Button button1, button2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setTitle("배경색 바꾸기(컨텍스트 메뉴)");

        baseLayout = (LinearLayout) findViewById(R.id.baseLayout);
        button1 = (Button) findViewById(R.id.button1);
        registerForContextMenu(button1);

        button2 = (Button) findViewById(R.id.button2);
        registerForContextMenu(button2);
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {

        super.onCreateContextMenu(menu, v, menuInfo);

        MenuInflater mInflater = getMenuInflater();
        if (v == button1) {
            menu.setHeaderTitle("배경색 변경");

            mInflater.inflate(R.menu.menu1, menu);
        }
        if (v == button2) {
            mInflater.inflate(R.menu.menu2, menu);
        }
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.itemRed:
                baseLayout.setBackgroundColor(Color.RED);
                return true;
            case R.id.itemGreen:
                baseLayout.setBackgroundColor(Color.GREEN);
                return true;
            case R.id.itemBlue:
                baseLayout.setBackgroundColor(Color.BLUE);
                return true;
            case R.id.subRotate:
                button2.setRotation(45);
                return true;
            case R.id.subSize:
                button2.setScaleX(2);
                return true;
        }
        return false;
    }

}

3. menu1.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/itemRed"
        android:title="배경색 (빨강)">
    </item>
    <item
        android:id="@+id/itemGreen"
        android:title="배경색(초록)">
    </item>
    <item
        android:id="@+id/itemBlue"
        android:title="배경색(파랑)">
    </item>

</menu>

4.menu2.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/subRotate"
        android:title="버튼 45도 회전"/>
    <item
        android:id="@+id/subSize"
        android:title="버튼 2배 확대"/>

</menu>


* Item에 라디오 버튼 적용

위 내용에 item xml 수정

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android" >
<group
    android:checkableBehavior="single">
    <item
        android:id="@+id/itemRed"
        android:title="배경색 (빨강)"></item>
    <item
        android:id="@+id/itemGreen"
        android:title="배경색(초록)">
    </item>
    <item
        android:id="@+id/itemBlue"
        android:title="배경색(파랑)">
    </item>
</group>
</menu>

 

'Programing > Android' 카테고리의 다른 글

커스텀 토스트, 커스텀 다이얼로그  (0) 2019.10.23
배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제  (0) 2019.10.21
탭호스트  (0) 2019.10.21
날짜 시간 위젯  (0) 2019.10.21
Android LineChart  (0) 2019.10.16

Android LineChart

Posted by PeEn
2019. 10. 16. 15:37 Programing/Android

 

xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<android:lecho.lib.hellocharts.view.LineChartView
    android:id="@+id/chart"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    layout_height="match_parent"
    layout_width="match_parent" />

</LinearLayout>

Main.java

public class MainActivity extends AppCompatActivity {

    LineChartView lineChartView;
    String[] axisData = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept",
            "Oct", "Nov", "Dec"};
    int[] yAxisData = {50, 20, 15, 30, 20, 60, 15, 40, 45, 10, 90, 18};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lineChartView = findViewById(R.id.chart);

        List yAxisValues = new ArrayList();
        List axisValues = new ArrayList();


        Line line = new Line(yAxisValues).setColor(Color.parseColor("#9C27B0"));

        for (int i = 0; i < axisData.length; i++) {
            axisValues.add(i, new AxisValue(i).setLabel(axisData[i]));
        }

        for (int i = 0; i < yAxisData.length; i++) {
            yAxisValues.add(new PointValue(i, yAxisData[i]));
        }

        List lines = new ArrayList();
        lines.add(line);

        LineChartData data = new LineChartData();
        data.setLines(lines);

        Axis axis = new Axis();
        axis.setValues(axisValues);
        axis.setTextSize(16);
        axis.setTextColor(Color.parseColor("#03A9F4"));
        data.setAxisXBottom(axis);

        Axis yAxis = new Axis();
        yAxis.setName("Sales in millions");
        yAxis.setTextColor(Color.parseColor("#03A9F4"));
        yAxis.setTextSize(16);
        data.setAxisYLeft(yAxis);

        lineChartView.setLineChartData(data);
        Viewport viewport = new Viewport(lineChartView.getMaximumViewport());
        viewport.top = 110;
        lineChartView.setMaximumViewport(viewport);
        lineChartView.setCurrentViewport(viewport);
    }

}

build.gradle

 allprojects {
        repositories {
            google()
            jcenter()
        }
    }

dependencies {

	implementation 'com.github.lecho:hellocharts-library:1.5.8@aar'
    
}

'Programing > Android' 카테고리의 다른 글

커스텀 토스트, 커스텀 다이얼로그  (0) 2019.10.23
배열과 테이블 위젯 이용한 계산기, 숫자버튼 예제  (0) 2019.10.21
탭호스트  (0) 2019.10.21
날짜 시간 위젯  (0) 2019.10.21
ContextMenu  (0) 2019.10.21

SQLITE 예제

Posted by PeEn
2019. 10. 16. 14:20 Programing/Database

다음 다이어그램을 보고 tmember, tbook, tlend 테이블을 생성하시오.

  1. tmember 테이블 제약 사항
    1. no : 기본키, not null, 정수
    2. sex : ‘남’, ‘여’ 중 하나만 입력 가능, 입력이 없으면 기본값 ‘여’ 로 입력
    3. hp : 유일
  2. tbook 테이블 제약 사항
    1. no, 기본키, not null, 자동증가
    2. isbn : 정수
  3. tlend 테이블 제약 사항
    1. cdate : 자동으로 오늘, 현재 시간 입력
    2. bno : tbook 테이블의 필드 no 를 참조하고 tbook 테이블에서 해당 no가 수정되면 같이 수정, 삭제 되면 같이 삭제
    3. mno : tmember테이블의 필드 no 를 참조하고 tmember 테이블에서 해당 no가 수정되면 같이 수정, 삭제 되면 NULL로 수정

1번 tmember

create table tmember(
  no INTEGER NOT NULL,
  dept TEXT,
  name TEXT,
  sex TEXT CHECK(sex in("남","여") )DEFAULT "여",
  hp TEXT UNIQUE,
  email TEXT,
  post TEXT,
  addr TEXT,
  addre TEXT,
PRIMARY KEY(no));

2번 tbook

CREATE TABLE tbook(
	no INTEGER PRIMARY KEY AUTOINCREMENT,
	title TEXT,
	author TEXT,
	publ TEXT,
	year INTEGER,
	isbn TEXT,
	symb TEXT
)

3번 tlend

CREATE TABLE tlend(
	cdate TEXT DEFAULT CURRENT_TIMESTAMP,
	mno INTEGER,
	bno INTEGER,
	days INTEGER,
	FOREIGN KEY(bno) REFERENCES tbook(no)
	 ON UPDATE CASCADE
	 ON DELETE CASCADE,
	FOREIGN KEY(mno) REFERENCES tmember(no)
		ON UPDATE CASCADE
		ON DELETE SET NULL
);

  • 다음 명령을 수행하시오.
    1. tmember 테이블에서 영문 주소에 Gimje가 들어간 사람
    2. tmember 테이블에서 학번이 201894005의 휴대폰 번호를 010-1111-1111로 수정하시오
    3. tmember 테이블에서 남자의 수를 세시오.
    4. tmember 테이블에서 전주에 사는 사람만 출력하시오.
    5. tmember 테이블에서 구글 이메일 주소를 사용하는 사람의 학번, 이름, 이메일을 출력하시오.
    6. tbook 테이블에서 isbn이 null 인 도서의 수를 세시오
    7. tmember 테이블에서 컴퓨터공학과 또는 일본언어문화학과 학생만 출력하시오.
      1. OR 사용
      2. IN 사용
      3. UNION 사용
    8. tmember와 tlend 테이블을 JOIN하여 도서번호, 학번, 학과, 이름, 휴대폰, 대출기간 을 출력하시오.
    9. tbook과 tlend 테이블을 JOIN하여 도서번호, 자료명, 저자, 출판사, 학번을 출력하시오.
    10. tmember, tbook과 tlend 테이블을 JOIN하여 학번, 학과, 이름, 휴대폰,  도서번호, 자료명, 저자, 출판사, 대출기간 을 출력하시오.

1. SELECT * FROM tmember WHERE addre LIKE '%Gimje%';

2. UPDATE tmember SET hp = '010-1111-1111' WHERE tmember.no = 201894055;

3. SELECT  count(tmember.sex ='남') AS '남자수' FROM tmember SELECT count() FROM tmember WHERE sex='남';

4. SELECT * FROM tmember WHERE addr LIKE '%전주%';

5. SELECT no,name,email FROM tmember where email like '%@gmail.com';

6.. SELECT * FROM tbook WHERE isbn is null;

7-1. SELECT * from tmember WHERE dept = '컴퓨터공학과' or dept = '일본언어문화학과';

7-2 SELECT * from tmember WHERE dept in('컴퓨터공학과' ,'일본언어문화학과');

7-3. SELECT * from tmember WHERE dept = '컴퓨터공학과' 
        UNION
        SELECT * FROM tmember WHERE dept = '일본언어문화학과';

8. 

'Programing > Database' 카테고리의 다른 글

SQL문 모음  (0) 2019.11.20
Oracle ALTER, DROP, RENAME, ent  (0) 2019.11.18
데이터베이스 무결성 제약조건  (0) 2019.10.02
데이터베이스 WHERE 조건  (0) 2019.09.25
관계대수 JOIN  (0) 2019.09.23

img,video,audio 삽입 | table | fieldset | input | button

Posted by PeEn
2019. 10. 10. 11:48 Programing/Web Programming

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
</head>
<body>
	<img src="title.gif">
	 <form action="adduser.jsp" method="post">
	<fieldset>
		<legend>필수 입력사항 이평화</legend>
		<table border="3">
			<tr>
				<td BGCOLOR =lightgray colspan="5" ><center>상세 입력 정보</center></td>		
			</tr>
			<tr>
				<td BGCOLOR =lightgray>아이디<td>
				<td><input type="text" name="name" id="name"></td>
				<td  BGCOLOR =lightgray>비밀번호</td>
				<td><input type="password" name="passwd" id="passwd"></td>
			</tr>
			<tr>
				<td BGCOLOR =lightgray>성별<td>
				<td><label for = "male"> 남성  </label> <input type="radio" name="gender" id="male" value="male"> <label for = "female"> 여성 </label> <input type="radio" name="gender" id="female" value="female"></td>
				<td  BGCOLOR =lightgray>진로분야</td>
				<td><input type="search" list="part" placeholder=""></td>
			</tr>

			<datalist id="part">
				<option value="web" />
 		    	<option value="mobile" />
  				<option value="movie" />
				<option value="program" />
				<option value="app" />
			</datalist>
			<tr>
				<td BGCOLOR =lightgray>휴대폰<td>
				<td><input type="text" name="phone" id="phone"></td>
				<td  BGCOLOR =lightgray>좋아하는 색상</td>
				<td><input type="color" /></td>
			</tr>
		</table>

	</fieldset>
		<br>
	<fieldset>
		<legend>선택 입력사항</legend>
		<br>
		<li>학과 선택 : 	
			<Select name ="major1" size ="1">
					<Option value="list1">스마트미디어
					<Option value="list2">게임콘텐츠
					<Option value="list3">시각디자인
					<Option value="list4">영화영상
			</Select>
		</li><br>
		<li>주소: <input type="text" name="adress" id="adress" size=45>
		</li><br>
		<li>취미생활: 	<input type="checkbox" name="hobby" id="mv" value="mv"><label for = "mv">영화</label>
				<input type="checkbox" name="hobby" id="sports" value="sports"><label for = "sports">스포츠</label>
				<input type="checkbox" name="hobby" id="computer" value="computer"><label for = "computer">컴퓨터</label>
				<input type="checkbox" name="hobby" id="music" value="music"><label for = "music">음악</label>
				<input type="checkbox" name="hobby" id="shopping" value="shopping"><label for = "shopping">쇼핑</label>
		</li><br>
		<li>자기소개서 파일 올리기 : <input type="submit" value="제출" onclick="alert('제출완료!')">
		<ul><video src="trailer.mp4" controls  width = "300" heigh = "300"></ul>
		<ul><audio src="old_pop.mp3"" autoplay controls></audio>
		
		<li>남기고 싶은 말<br>
			<textarea name="feedback" rows="5" cols="100"></textarea></li>
		<input type="button" value="가입하기" onclick="alert('가입을 축하드려요')">
		<input type="reset">	
	</fieldset>
	<from>
</body>
</html>

'Programing > Web Programming' 카테고리의 다른 글

HTML 투명도  (0) 2019.10.31
CSS 수평 리스트, 테이블  (0) 2019.10.22
IIS 서버 HTML  (0) 2019.10.01
웹프로그래밍 2. 테이블  (0) 2019.09.17
웹프로그래밍 2. 페이지 이동 및 사진, 글자 정렬 실습  (0) 2019.09.17

Linux 입출력

Posted by PeEn
2019. 10. 7. 14:15 Programing/Linux

gcc = c언어 컴파일러

h.c라는 c언어 파일을 만들고 그안에 c 프로그래밍 하기

$ nano h.c

#include <stdio.h>

int main(){
        int a,b;
        char n[10];
        scanf("%d%d%s",&a,&b,n);
        printf("%d + %d = %d\n%s\n",a,b,a+b,n);
}

gcc h.c

h.c에 있는 내용을 c로 컴파일

a.out이라는 연결파일이 생성

*모든 gcc 컴파일러 파일은 a.out으로 만들어짐

a.out 실행

./a.out


입력재지정(redirection)

cat > data

10 20 hong

ctrl + d

data라는 파일이 만들어짐

 

./a.out < data

data라는 파일 안의 내용이 a.out 코드에 연결되어 입력된다


출력할 데이터를 문서에 저장

cat 파일1 파일2 > 합칠파일명

lph@lph-VirtualBox:~$ cat data
10 20hong
lph@lph-VirtualBox:~$ cat ttt
10 + 20 = 30
honglph@lph-VirtualBox:~$ cat data ttt > aaaa
lph@lph-VirtualBox:~$ cat aaaa
10 20hong
10 + 20 = 30

 

'Programing > Linux' 카테고리의 다른 글

리눅스 정리2  (0) 2019.12.09
리눅스 정리  (0) 2019.12.02
리눅스 명령어  (0) 2019.09.19