1

私のアプリケーションでは、ユーザーから日付を取得する必要があります。
最初に1つのボタンを使用します。ユーザーがボタンをクリックすると、日付ピッカーを保持するダイアログボックスが表示され、1つのTextViewで結果が得られます。
次に、ボタンをEditViewに置き換えます。EditViewをクリックすると、ダイアログボックスが表示され、キーボードは表示されません。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.report);
        EmployeeGlobal eg=(EmployeeGlobal)getApplicationContext();
        String uid=eg.getMainUserId();
        ArrayList<String>list=eg.getAllProjects(uid);
          Spinner spinner = (Spinner)findViewById(R.id.all_projs);
          ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
          spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spinner.setAdapter(spinnerArrayAdapter);
          Toast.makeText(getApplicationContext(), "Report"+uid, Toast.LENGTH_LONG).show();
          mStartDateDisplay=(TextView)findViewById(R.id.strdate);
          mEndDateDisplay = (TextView) findViewById(R.id.enddate);
            mEndDate = (Button) findViewById(R.id.end_dateb);
            mStartDate=(Button)findViewById(R.id.start_dateb);
            mYear=c1.get(Calendar.YEAR);
            mMonth = c1.get(Calendar.MONTH);
            mDay = c1.get(Calendar.DAY_OF_MONTH);
            mStartDate.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    showDialog(DATE_DIALOG_START);

                    //updateDisplay(mStartDateDisplay);
                }
            });
            mEndDate.setOnClickListener(new View.OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    showDialog(DATE_DIALOG_END);
                     //updateDisplay(mEndDateDisplay);
                }
            });


    }
    private void updateDisplay(TextView T) {
        T.setText(
            new StringBuilder()
                    // Month is 0 based so add 1
                    .append(mMonth + 1).append("-")
                    .append(mDay).append("-")
                    .append(mYear).append(" "));
    }
    private DatePickerDialog.OnDateSetListener mFromDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, 
                                  int monthOfYear, int dayOfMonth) {
                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;
                updateDisplay(mStartDateDisplay);

            }
        };
        private DatePickerDialog.OnDateSetListener mToDateSetListener =
            new DatePickerDialog.OnDateSetListener() {

                public void onDateSet(DatePicker view, int year, 
                                      int monthOfYear, int dayOfMonth) {
                    mYear = year;
                    mMonth = monthOfYear;
                    mDay = dayOfMonth;
                    updateDisplay(mEndDateDisplay);

                }
            };
        @Override
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DATE_DIALOG_END:
                return new DatePickerDialog(this,mToDateSetListener, mYear, mMonth, mDay);
            case DATE_DIALOG_START:
                return new DatePickerDialog(this,mFromDateSetListener,mYear, mMonth, mDay);
            }
            return null;
        }

だから誰か助けてくれませんか?

4

4 に答える 4

7

私はまったく同じことをしました私はいくつかのコードを投稿していますそれを試してみてください。動作するはずです。

EditText time_text_1;
time_text_1.setOnTouchListener(new View.OnTouchListener() {

     @Override
     public boolean onTouch(View v, MotionEvent event) {
       if (event.getAction() == MotionEvent.ACTION_UP) {
          //CREATE YOUR DATE PICKER DIALOG HERE.
          }
     return false;
     }
    });

edittextのxmlファイルでこれらのプロパティを宣言します。

android:clickable="true"
android:cursorVisible="false"
android:editable="false"
android:inputType="none"
android:singleLine="true"

それがうまくいくことを願っています。

于 2012-05-04T04:00:25.880 に答える
0

EditTextが必要ない場合は、代わりにTextViewを使用してください。背景を変更して、EditTextのように見せます。

于 2012-05-04T04:00:08.033 に答える
0

EditBoxをクリックしたときに別の画面に移動しようとしましたが、それが起こらないことがわかりました。クリックするとソフトキーボードが表示されます。もう一度押すと、別の画面に移動します。

私は同じ問題を抱えていました、そして私がしたことはボタンを使用しましたが、EditTextに似た背景を使用しました。

したがって、ユーザーは自分がEditBoxの1つであるが、実際にはボタンであると感じるでしょう。

この情報がお役に立てば幸いです。

于 2012-05-04T04:10:59.503 に答える
0

この2行のコードを試してください

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mStartDate.getWindowToken(), 0);
于 2012-05-04T04:14:01.320 に答える