마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

날짜 출력에 관해서 질문 있습니다

0 추천

안녕하세요

현재 안드로이드 상품 등록 폼 제작 중입니다.

레이아웃 중

유통기한   에디트텍스트 

부분에서 에디트 텍스트를 클릭하면 날짜 선택 다이얼로그가 바로 떠야하는데

키보드 입력 창 먼저 뜨고

그 이후 한번 더 클릭해야지 날짜 선택 다이얼로그 가 뜹니다.

이 부분을 해결 하고싶은데 도와주세요..!

 

소스코드 입니다.

package com.example.upload;



import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.Calendar;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;

import android.app.Activity;
import android.app.ActionBar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.Fragment;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.os.Build;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;


public class MainActivity extends Activity {

	Button bt;
	ImageView iv;
	private EditText mDateDisplay;  //제조년월
	private EditText mDateDisplay2;  //유통기한
	private int mYear;
	private int mMonth;
	private int mDay;
	private int mYear2;
	private int mMonth2;
	private int mDay2;

	static final int DATE_DIALOG_ID = 0;
	int flag=0;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//제조년월 텍스트뷰 객체로 선언후 클릭 메소드
		mDateDisplay = (EditText)findViewById(R.id.birth);
		mDateDisplay.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag=0;
				showDialog(DATE_DIALOG_ID);
			}
		});
		//유통기한 텍스트뷰 객체로 선언후 클릭 메소드
		mDateDisplay2 = (EditText)findViewById(R.id.enddate); 
		mDateDisplay2.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				flag=1;
				showDialog(DATE_DIALOG_ID);
			}
		});


		final Calendar c = Calendar.getInstance();

		mYear = c.get(Calendar.YEAR);
		mMonth = c.get(Calendar.MONTH);
		mDay = c.get(Calendar.DAY_OF_MONTH);



	}

	//제조년월일
	private void updateDisplay(){
		mDateDisplay.setText(new StringBuilder().append(mYear).append("-").append(mMonth+1).append("-").append(mDay).append(" "));
	}
	//유통기한
	private void updateDisplay2(){
		mDateDisplay2.setText(new StringBuilder().append(mYear).append("-").append(mMonth+1).append("-").append(mDay).append(" "));
	}



	private DatePickerDialog.OnDateSetListener mDateSetListener = 
			new DatePickerDialog.OnDateSetListener() {

		@Override
		public void onDateSet(DatePicker view, int year,
                              int monthOfYear,int dayOfMonth) {
			// TODO Auto-generated method stub
			mYear = year;
			mMonth = monthOfYear;
			mDay = dayOfMonth;
			if(flag==0) { //제조년월 이벤트일 경우
				updateDisplay();
			}else if(flag==1) { //유통기한 이벤트일 경우
				updateDisplay2();
			}
		}
	};



	@Override
	protected Dialog onCreateDialog(int id){
		if(id == DATE_DIALOG_ID){

			return new DatePickerDialog(this, mDateSetListener,                          mYear, mMonth, mDay);
		}

		return null;
	}


	}

}

xml 일부분 입니다

<TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:gravity="left"
                android:padding="10dp"
                android:layout_weight="2"
                android:text="유통기한"
                android:textSize="16dp" />

            <EditText
                android:id="@+id/enddate"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@+id/textView6"
                android:layout_weight="1"
                android:ems="10"
                android:singleLine="true" />

 

니워워 (260 포인트) 님이 2014년 7월 1일 질문

1개의 답변

+1 추천
 
채택된 답변
focusable을 false로 두시고 onClickListener 다시면 됩니다.
노예의집 (23,370 포인트) 님이 2014년 7월 1일 답변
니워워님이 2014년 7월 2일 채택됨
감사합니다 해결 했습니다 ㅠㅠ
...