0

このチュートリアルに従って、日付ピッカーをアプリに統合しました。オリジナルを自分のニーズに合わせて調整し、なんとか機能させました。残念ながら、著者は DatePicker ダイアログを実際に使用する概念についてはあまり詳しく説明していません。

その結果、アプリを起動すると全画面のカレンダーが表示されますが、「日付を選択」ボタンをクリックすると、単に日、月、年を取得しようとしていますが、何を削除する必要がありますか?

ここにコード:

public class MainActivity extends Activity implements OnClickListener,
        OnCheckedChangeListener {

    TabHost th;

    Button  changeDate;


    TextView displayDate;
    public static final int dDialogId = 1;
    // date and time
    private int mYear;
    private int mMonth;
    private int mDay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        // Set activity to full screen!!
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        th = (TabHost) findViewById(R.id.tabhost);

        th.setup();
        TabSpec specs = th.newTabSpec("tag1");
        // one tab
        specs.setContent(R.id.tab1);
        // what appears on actual tab
        specs.setIndicator("Tools");
        th.addTab(specs);
        specs = th.newTabSpec("tag2");
        // one tab
        specs.setContent(R.id.tab2);
        // what appears on actual tab
        specs.setIndicator("Calorie Calculator");
        th.addTab(specs);
        specs = th.newTabSpec("tag3");
        // one tab
        specs.setContent(R.id.tab3);
        // what appears on actual tab
        specs.setIndicator("Your Stats!");
        th.addTab(specs);

        initializeVariables();
}


    private void initializeVariables() {

        mapARun = (Button) findViewById(R.id.btnMapARun);
        weightConverter = (Button) findViewById(R.id.btnWeightConverter);

        changeDate = (Button) findViewById(R.id.btnChangeDate);
        displayDate = (TextView) findViewById(R.id.tvDisplayDate);

        changeDate.setOnClickListener(this);

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

        updateDisplay();
    }

    @Override
    @Deprecated
    protected void onPrepareDialog(int id, Dialog dialog) {
        // TODO Auto-generated method stub
        super.onPrepareDialog(id, dialog);

        ((DatePickerDialog) dialog).updateDate(mYear, mMonth, mDay);

    }

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

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

    private void updateDisplay() {
        displayDate.setText(new StringBuilder()
                // Month is 0 based so add 1
                .append(mMonth + 1).append("-").append(mDay).append("-")
                .append(mYear));

    }



        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {

        case R.id.btnChangeDate:
            DatePickerDialog DPD = new DatePickerDialog(this,
                    mDateSetListener, mYear, mMonth, mDay);
            DPD.show();
            break;

        }

    }



    }

}

codei の実行時に構文エラーが発生した場合はお詫びします。関連のない他の多くの関数を切り取りました。

ダイアログが呼び出されたときに日付ピッカーを表示する別の方法はありますか?

4

1 に答える 1

0

ボタンだけであなたのメインカテゴリを作成します。コードを使用して、ボタンが別のアクティビティを呼び出すようにします。フルスクリーンの日付ピッカーで別の画面を呼び出すボタンのある画面が表示されます。

日付が選択されたときに DatePicker アクティビティを終了させます。startActivityForResult でアクティビティを呼び出し、finishWithResult で終了していることを確認してください。

于 2013-05-09T15:47:42.987 に答える