검색결과 리스트
글
학습용 실습이라 UI따위.......;;;;;;귀찮아서 기능 두개 한 화면에 재활용했습니다. ㅋㅋ
재활용이어도 기능 두개 다되니 연습해보세요.그냥 연습용으로 DatePicker를 사용해보았습니다.
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"
android:gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/txtstart"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="25dp"
android:text="시작시간" />
<DatePicker
android:id="@+id/dpStart"
android:scrollbarStyle="outsideOverlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="25dp"
android:text="목표시간" />
<DatePicker
android:id="@+id/dpEnd"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:id="@+id/etInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="시작시간으로부터 ~몇일 검색"
android:inputType="number"
android:ems="10" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btnSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="시작일부터 목표일후의 날짜"
android:text="검색" />
</LinearLayout>
<TextView
android:id="@+id/txtres"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="22dp"
android:text="결과창" />
</LinearLayout>
이부분은 java 소스부분입니다.
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
public class DaySearchActivity extends Activity {
/** Called when the activity is first created. */
Button btnSearch;
TextView txtRes;
EditText etIn;
DatePicker dpStart;
DatePicker dpEnd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSearch =(Button)findViewById(R.id.btnSearch);
txtRes = (TextView)findViewById(R.id.txtres);
etIn = (EditText)findViewById(R.id.etInput);
dpStart = (DatePicker)findViewById(R.id.dpStart);
dpEnd = (DatePicker)findViewById(R.id.dpEnd);
btnSearch.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
txtRes.setText("");
//시작값
Calendar mCalendar = new GregorianCalendar(
dpStart.getYear(), //year
dpStart.getMonth(), //month
dpStart.getDayOfMonth() //Day
);//end
//목표값
Calendar mEndCalendar = new GregorianCalendar(
dpEnd.getYear(), //year
dpEnd.getMonth(), //month
dpEnd.getDayOfMonth() //Day
);//end
//두개 기능을 한버튼에 하다보니 생긴 조건문
if(etIn.getText().toString().equals(""))
{
long diffday = mEndCalendar.getTimeInMillis() - mCalendar.getTimeInMillis() ;
txtRes.setTextColor(Color.RED) ;
if (diffday < 0) {//D+ 인지 D-인지 구별
diffday = diffday * -1; //부호 부꾸는건데 안하고도 표시 가능
String res = Long.toString(diffday / (1000 * 60 * 60 * 24));
// 밀리세컨 형태이므로 1000초*60초(분)*60분(시간)*24시간(하루)로 나누어 1일로 환산한다
txtRes.setText("D+"+res);
}else{
String res = Long.toString(diffday / (1000 * 60 * 60 * 24));
// 밀리세컨 형태이므로 1000초*60초(분)*60분(시간)*24시간(하루)로 나누어 1일로 환산한다
txtRes.setText("D-"+res);
}
}//if
else
{
mCalendar.add(
Calendar.DATE, // 기준점을 날짜로 하기때문에 Date 로함
Integer.parseInt(etIn.getText().toString())// 입력값 정수로 볂환해서 파라미터에 넣는다.
);//end
SimpleDateFormat cusDate = new SimpleDateFormat("yyyy-MM-dd");// 표시한 포멧 형태
txtRes.setTextColor(Color.GREEN) ;
txtRes.setText(etIn.getText()+"일후 날짜 :"
+cusDate.format( mCalendar.getTime() ) );
etIn.setText("");
}//end else
}//end view
});//end OnClickListener
}//end onCreate
}//end activity
|
[실행1] [실행 2]
[실헹1] : DatePicker를 이용한 두 데이터간의 차이로 몇일 남았는지 혹은 몇일 경과했는지 알려줌
[실행2] : 입렵값을 통해 기준일로부터 입력날짜만큼 지난후의 년월일을 알려줌
'Android' 카테고리의 다른 글
[Android]안드로이드 라이프 사이클 (0) | 2012.06.21 |
---|---|
[Android]APIDemo 순서입니다. (0) | 2012.05.31 |
[Android]키보드 입력 종류 (0) | 2012.05.29 |
[Android]형변환 종류 (0) | 2012.05.29 |
[Android]Log 필터 (0) | 2012.05.29 |
RECENT COMMENT