Ciao a tutti,
avrei un'esigenza che non riesco a realizzare:
dovrei fare in modo che al click di una casella di testo si apra una finestra di dialogo in sovraimpressione all'attivity che mi permetta di scegliere da una intervallo di numeri presenti su un NumberPicker.
Il mio problema è di fondo..non riesco a trovare come si crea questo legame con una numberPicker tramite l'evento onclick dell'editText
ho trovato un esempio in cui viene utilizzato un pulsante che apre un calendario e funziona per sommicapi per come vorrei io..soltanto che non riesco a personalizzarlo. :-(
codice:
package com.example.sscreen;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.text.format.Time;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int MY_DATE_DIALOG_ID1 = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onDateDialogButtonClick(View v) {
showDialog(MY_DATE_DIALOG_ID1);
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case MY_DATE_DIALOG_ID1:
DatePickerDialog dateDlg = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Time chosenDate = new Time();
chosenDate.set(dayOfMonth, monthOfYear, year);
long dtDob = chosenDate.toMillis(true);
CharSequence strDate = DateFormat.format("MMMM dd, yyyy", dtDob);
Toast.makeText(MainActivity.this, "Date picked: " + strDate, Toast.LENGTH_SHORT).show();
}
}, 2011,0, 1);
dateDlg.setMessage("When's Your Birthday?");
return dateDlg;
}
return null;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
switch (id) {
case MY_DATE_DIALOG_ID1:
EditText number = (EditText) dialog.findViewById(R.id.editText1);
int myNewNumber = Integer.parseInt(number.getText().toString());
DatePickerDialog dateDlg = (DatePickerDialog) dialog;
int iDay,iMonth,iYear;
// Always init the date picker to today's date
Calendar cal = Calendar.getInstance();
iDay = cal.get(Calendar.DAY_OF_MONTH);
iMonth = cal.get(Calendar.MONTH);
iYear = cal.get(Calendar.YEAR);
dateDlg.updateDate(iYear, iMonth, iDay);
break;
}
return;
}
}
Potreste aiutarmi a risolvere questo problema...sono bloccato e dovrei finire un progetto che ho iniziato e devo consegnare a breve.
A me importa sapere come scrivere la parte che fa apparire il NumberPicker per poi richiudersi con l'ok e salvare il valore dentro la casella di testo.
Spero qualcuno di voi mi possa dedicare un pò del proprio tempo.
Vi ringrazio!