1. CustomToast


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="org.android.soldesk.customtoast_01.CustomToast_01Activity">

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnToast"
android:text="커스텀 토스트 출력하기"/>

</LinearLayout>

<xml>


package org.android.soldesk.customtoast_01;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class CustomToast_01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_toast_01);
Button btnToast= (Button) findViewById(R.id.btnToast);
btnToast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater inf= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View converView=inf.inflate(R.layout.custom,null);
Toast tt= Toast.makeText(getApplicationContext(),"출력 메시지",Toast.LENGTH_SHORT);
tt.setView(converView);
tt.setGravity(Gravity.CENTER_VERTICAL,0,0);
tt.show();
}
});

}
}

<java>


<?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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView"
android:text="아름다운 꽃"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView01"
android:src="@drawable/f"
android:layout_gravity="center"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView02"
android:src="@drawable/g"
android:layout_gravity="center"/>

</LinearLayout>

<custom.xml>




2. Notification(알람 메세지에 이미지 추가)


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnNoti"
android:text="알림 발생!!!!"
android:onClick="onNormal"
/>
</LinearLayout>

<xml>


package org.android.soldesk.mynotification_01;

import android.app.NotificationManager;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;

public class MyNotification_01Activity extends AppCompatActivity {

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

public void onNormal(View v)
{
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());

builder.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.f));
builder.setSmallIcon(android.R.drawable.ic_input_delete);
builder.setContentTitle("타이틀 ~~~~");
builder.setContentText("내용~~~~~~~~~~~~~~~~");

manager.notify(1,builder.build());
}
}

<java>




3. Notification_02


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnNoti"
android:text="알림 발생!!!!"
android:onClick="onNormal"
/>
</LinearLayout>

<xml>


package org.android.soldesk.mynotification_02;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.TaskStackBuilder;
import android.content.Context;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;

public class MyNotification_02Activity extends AppCompatActivity {

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

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public void onNormal(View v) {
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext());

builder.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.f));
builder.setSmallIcon(android.R.drawable.ic_input_delete);
builder.setContentTitle("타이틀 ~~~~");
builder.setContentText("내용~~~~~~~~~~~~~~~~");

// InboxStyle 지정

NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();

String[] events = {"서울","부산","대구","대전","제주"};
inboxStyle.setBigContentTitle("지역명");

for (String str : events)
{
inboxStyle.addLine(str);
}

builder.setStyle(inboxStyle);

// 새로운 화면 설정 코드

Intent intent = new Intent(getApplicationContext(),getClass());

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

stackBuilder.addParentStack(getClass());

stackBuilder.addNextIntent(intent);

PendingIntent resultIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_CANCEL_CURRENT);

builder.setContentIntent(resultIntent);
builder.setAutoCancel(true); // 알림 창에서 알림 선택시 알림 아이콘 삭제

manager.notify(1,builder.build());
}
}

<java>




4. 다이얼로그(Dialog)


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="알림 경고 창"
android:onClick="onAlertShow"
/>

</LinearLayout>

<xml>


package org.android.soldesk.mydialog_01;


import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;

public class MyDialog_01Activity extends AppCompatActivity {

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

public void onAlertShow(View v)
{
MyDialogFragment frag = MyDialogFragment.newInstance();
frag.show(getFragmentManager(),"Tag");
}

public static class MyDialogFragment extends DialogFragment
{
public static MyDialogFragment newInstance()
{
return new MyDialogFragment();
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

builder.setTitle("타이틀");
builder.setMessage("메시지 ~~~~~~");
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

Log.i("MyTag","확인");
}
});
builder.setNegativeButton("취소",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("MyTag","Name");
}
});

return builder.create();
}
}
}

<java>




5. MyDialog_02


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button01"
android:text="알림 경고창"
android:onClick="onAlertShow"
/>

</LinearLayout>

<xml>


package org.android.soldesk.mydialog_02;

import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;

import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MyDialog_02Activity extends AppCompatActivity {

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

public void onAlertShow(View v)
{
MyDialogFragment frag = MyDialogFragment.newInstance();
frag.show(getFragmentManager(),"TAG");

}

public static class MyDialogFragment extends DialogFragment
{
// 배열 생성
String[] data = new String[]{"AA","BB","CC"};

public static MyDialogFragment newInstance() {
return new MyDialogFragment();
}

@Override

public Dialog onCreateDialog(Bundle savedInstanceState)
{
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("타이틀");
builder.setSingleChoiceItems(data,2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

Log.i("MyTag",data[which]);
dialog.dismiss();// 다이얼로그 창 닫기
}
});
return builder.create();
}
}
}

<java>




6. CustomDialog_01


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button01"
android:text="사용자 알림창"
android:onClick="onAlertPrint"
/>

</LinearLayout>

<xml>


package org.android.soldesk.customdialog_01;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;

public class CustomDialog_01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_dialog_01);
}
public void onAlertPrint(View v)
{
MyDialogFragement frag = MyDialogFragement.newInstance();
frag.show(getFragmentManager(),"TAG");
}

public static class MyDialogFragement extends DialogFragment{
public static MyDialogFragement newInstance()
{
return new MyDialogFragement();
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater inf= (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View convertView=inf.inflate(R.layout.customdialog,null);
AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
builder.setTitle("Title ~~~~~");
builder.setView(convertView);//커스텀 객체 설정
builder.setPositiveButton("확인", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i("MyTag","확인");
}
});
return builder.create();
}

}
}

<java>


<?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"
android:background="#ff995599">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TableRow android:id="@+id/tableRow01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="주소 : "
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/txtaddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="서울시 종로구 관철동 101 "
android:textAppearance="?android:attr/textAppearanceMedium"/>
</TableRow>
<TableRow android:id="@+id/tableRow02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="전화번호 : "
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/txtphonenumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="010-5678-3666 "
android:textAppearance="?android:attr/textAppearanceMedium"/>
</TableRow>
</TableLayout>
</LinearLayout>

<customdialog.xml>




7. DatePicker


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

<DatePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/datePicker01"
android:startYear="2013"
android:endYear="2018"
android:datePickerMode="spinner"
android:spinnersShown="true"
/>

</LinearLayout>

<xml>


package org.android.soldesk.datepicker_1;


import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.widget.CalendarView;
import android.widget.DatePicker;
import android.widget.Toast;

public class DatePicker_1Activity extends AppCompatActivity {

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

picker = (DatePicker) findViewById(R.id.datePicker01);

//CalendarView 객체 얻기

CalendarView eView = picker.getCalendarView();

//이벤트 처리

eView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(@NonNull CalendarView view, int year,
int month, int dayOfMonth) {

String str = year + " 년" + month + "월 " + dayOfMonth + "일";

Toast.makeText(getApplicationContext(),str,Toast.LENGTH_SHORT).show();
}
});

}
}

<java>




8. DatePickerDialog_01


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

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button01"
android:text="날짜지정"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button02"
android:text="시간지정"
/>

</LinearLayout>

<xml>


package org.android.soldesk.datepickerdialog_01;

import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;

import java.util.Calendar;

public class DatePickerDialog_01Activity extends AppCompatActivity {

Button btnSelectDate, btnSelectTime;

static final int DATE_DIALOG_ID = 0;
static final int TIME_DIALOG_ID = 1;

public int year,month,day,hour,minute;
private int mYear,mMonth,mDay,mHour,mMinite;

public DatePickerDialog_01Activity()
{
final Calendar cc = Calendar.getInstance();
mYear = cc.get(Calendar.YEAR);
mMonth = cc.get(Calendar.MONTH);
mDay = cc.get(Calendar.DAY_OF_MONTH);
mHour = cc.get(Calendar.HOUR_OF_DAY);
mMinite = cc.get(Calendar.MINUTE);
}

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

btnSelectDate = (Button) findViewById(R.id.button01);
btnSelectTime = (Button) findViewById(R.id.button02);

btnSelectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

showDialog(DATE_DIALOG_ID);
}
});

btnSelectTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
}
private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int yearSelected, int monthOfYear, int dayOfMonth) {

year = yearSelected;
month = monthOfYear;
day = dayOfMonth;

Toast.makeText(getApplicationContext(),"날짜 : "+ year + " - " + month + " - "+ day,
Toast.LENGTH_SHORT).show();

}
};
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int min) {

hour = hourOfDay;
minute = min;

Toast.makeText(getApplicationContext(),"시간 : "+hour + " : " + minute,Toast.LENGTH_SHORT).show();
}
};

@Override
protected Dialog onCreateDialog(int id)
{
switch (id)
{
case DATE_DIALOG_ID:
return new DatePickerDialog(this,mDateSetListener,mYear,mMonth,mDay);

case TIME_DIALOG_ID:
return new TimePickerDialog(this,mTimeSetListener,mHour,mMinite,false);
}
return null;
}

}

<java>




9. ProgressDialog


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

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btnDialog"
android:text="wheel Type Dialog"
android:onClick="onWheel"
/>
</LinearLayout>

<xml>


package org.android.soldesk.progressdialog_01;

import android.app.Dialog;
import android.app.DialogFragment;
import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class ProgressDialog_01Activity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress_dialog_01);
}
public void onWheel(View v)
{
MyDialogFragment frag=MyDialogFragment.newInstance();
frag.show(getFragmentManager(),"Tag");
}

public static class MyDialogFragment extends DialogFragment{
public static MyDialogFragment newInstance(){
return new MyDialogFragment();
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
ProgressDialog dialog=new ProgressDialog(getContext());
dialog.setTitle("Progress Title");
dialog.setMessage("메시지~~");
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
return dialog;
}
}
}

<java>




10. SeekBar


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

<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/seekBar01"
android:max="100"
/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtValue"
android:text="설정값"
android:textAppearance="?android:attr/textAppearanceLarge"

/>

</LinearLayout>

<xml>


package org.android.soldesk.seekbar_01;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.SeekBar;
import android.widget.TextView;

public class SeekBar_01Activity extends AppCompatActivity {

SeekBar seek;
TextView txtvalue;

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

seek = (SeekBar) findViewById(R.id.seekBar01);
txtvalue = (TextView) findViewById(R.id.txtValue);

seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

Log.i("MyTag","onProgressChange" + Integer.toString(progress));
txtvalue.setText(Integer.toString(progress));

}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.i("MyTag","~~~~~~~onStartTrackingTouch");
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.i("MyTag","^^^^^^^onStopTrackingTouch");
}
});


}
}

<java>


+ Recent posts