我想我需要一個監聽器,但不能設置它。 在下面的代碼中,時間對話框和日期對話框都起作用。隨後出現小對話框,我選擇一個日期/時間,然後選擇我有我的日期。但我無法使文本輸入工作。 我已經嘗試了幾次這樣的代碼從一個示例程序迭代: bnBodyEntered = true; bodyDialog = new TextInputDialog(this); bodyDialog.setText(「body」); 這段代碼顯示了帶有字母滾輪的文本對話框,但程序已經過去了,當我輸入幾個字母並且沒有選擇任何事情時。因爲我沒有成立聽衆。所以我補充說(如注) bodyDialog.setOnDismissListener(textSetListener); 使用幾個「setOn ---- Listener」值,它或者仍然運行過去,或者我得到各種編譯錯誤。如何設置偵聽器?
這是爲我的WIMMOne手錶,所以版本7,沒有虛擬鍵盤。它需要是一個對話框。
(注:我刪除了發佈前的註釋代碼採空區 - 可能更多的東西,所以如果它沒有因爲 - 對不起。)
感謝,克拉克
/******************************
* Wimm imports
******************************/
import com.wimm.framework.app.Dialog;
import com.wimm.framework.app.DatePickerDialog;
import com.wimm.framework.app.DatePickerDialog.OnDateSelectedListener;
import com.wimm.framework.app.LauncherActivity;
import com.wimm.framework.app.TextInputDialog;
import com.wimm.framework.app.TimePickerDialog;
import com.wimm.framework.app.TimePickerDialog.OnTimeSelectedListener;
@ Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Log.d("RemindEA","01S onCrt");
setContentView(R.layout.reminder_edit_activity);
. . .
. . .
mBodyText = (EditText)findViewById(R.id.body);
mTimeButton = (Button)findViewById(R.id.reminder_time);
mDateButton = (Button)findViewById(R.id.reminder_date);
mConfirmButton = (Button)findViewById(R.id.confirm);
Log.d("RemindEA","10S onCrtV df");
//------------- TEXT INPUT
mBodyText.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Log.d("RemindEA","21> onClkV:Body");
showDialog(BODY_DIALOG_ID);
Log.d("RemindEA","22< onClkV:Body:" + strBody);
mBodyText.setText(bodyDialog.getText());
return;
}
});
//-------------------------- TIME INPUT
mTimeButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Log.d("RemindEA","25> onClkV:Time");
showDialog(TIME_DIALOG_ID);
Log.d("RemindEA","26< onClkV:Time");
}
});
//-------------------------- DATE INPUT
mDateButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Log.d("RemindEA","30> onClkV:Time");
showDialog(DATE_DIALOG_ID);
Log.d("RemindEA","31< onClkV:Time");
}
} );
protected Dialog onCreateDialog(int id)
{
Log.d("RemindEA","70S Dialog:" + id);
switch (id)
{
// if we want a time dialog--------------
case TIME_DIALOG_ID:
Log.d("RemindEA","71S TIME_DIALOG_ID");
timeDialog = new TimePickerDialog(this);
timeDialog.setTimeSelectedListener(timeSetListener);
timeDialog.setTime(mCalendar.get(Calendar.HOUR_OF_DAY),
mCalendar.get(Calendar.MINUTE));
Log.d("RemindEA","73S TIME_D:" + timeDialog);
return timeDialog;
// if we want a date dialog ---------------
case DATE_DIALOG_ID:
Log.d("RemindEA","75S DATE_DIALOG_ID-26");
mCalendar = Calendar.getInstance();
Log.d("RemindEA","76S DATE_DIALOG_ID-27");
dateDialog = new DatePickerDialog(this);
dateDialog.setDateSelectedListener(dateSetListener);
dateDialog.setDate(mCalendar.get(Calendar.DAY_OF_MONTH),
mCalendar.get(Calendar.MONTH ));
Log.d("RemindEA","77S DATE_D:" + dateDialog);
return dateDialog;
// if we want text input dialog ---------------------
case BODY_DIALOG_ID:
Log.d("RemindEA","80S BODY_DIALOG_ID");
bnBodyEntered = true;
Log.d("RemindEA","81S TITLE");
bodyDialog = new TextInputDialog(this);
//---> ADDED LINE BELOW TO CREATE A LISTENER: GET ERROR <-----
// ERROR BELOW: setOnDismissListener cannot be resolved to a type
bodyDialog.setOnDismissListener(textSetListener);
//------------------------------------------
//ALSO //.setOnKeyListener(onKeyListener) - others
Log.d("RemindEA","82S New");
bodyDialog.setText("body");
Log.d("RemindEA","83X:" + bodyDialog);
return bodyDialog;
}
return null;
}
private OnTimeSelectedListener timeSetListener = new OnTimeSelectedListener()
{
public void onTimeSelected(int arg0, int arg1)
{
Log.d("RemindEA","90S onTimeSelected");
intHH = arg0;
intMN = arg1;
Log.d("RemindEA","91S schedule:" + intHH + ":" + intMN);
//updateDisplay();
}
};
private OnDateSelectedListener dateSetListener = new OnDateSelectedListener()
{
public void onDateSelected(int arg0, int arg1)
{
Log.d("RemindEA","92S onTimeSelected");
intDD = arg0;
intMM = arg1;
Log.d("RemindEA","93S schedule:" + intDD + ":" + intMM);
//updateDisplay();
}
};
//------------------------------------
// -----> ERROR: setOnDismissListener cannot be resolved to a type
private setOnDismissListener textSetListener = new setOnDismissListener
//------------------------------------
{
private void textSetListener() // bodySetListener()
{
Log.d("RemindEA","100S BodyLisner"); //<- does not get here on <done>
return;
}
};