我有一个带有两个线性布局的Listview,并且有一个按钮添加新行。当我点击添加新行按钮时,我想动态创建新的按钮行。之后,单击该创建的按钮,我想显示一个时间选择器对话框。当用户点击设置时间按钮时,我想在该按钮中设置该时间。我的问题是所有的按钮(具有不同的ID)都被添加好了,当点击该按钮时,弹出了时间选择器对话框。但点击设置时间按钮后,时间将不会设置。如何将此时间添加到按钮。我该如何处理这个按钮?
这是我在listview onscroll listener
中的一段代码final LinearLayout l1 = LinearLayout) List_Layout.getChildAt(0);
LinearLayout l12 = (LinearLayout) List_Layout.getChildAt(1);
final Button button = new Button(getApplicationContext());
final Button button1 = new Button(getApplicationContext());
add_button.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
button.setLayoutParams(lparams);
button1.setLayoutParams(lparams);
button.setId(0);
button1.setId(1);
l1.addView(button, lparams);
l12.addView(button1, lparams);
}
}
button.setOnClickListener(new OnClickListener()
{
@SuppressWarnings("deprecation")
public void onClick(View v)
{
showDialog(TIME_DIALOG_ID);
}
}
button1.setOnClickListener(new OnClickListener()
{
@SuppressWarnings("deprecation")
public void onClick(View v)
{
// TODO Auto-generated method stub
Log.e("tag 1", button1.getTag()+"");
showDialog(TIME_DIALOG_ID);
}
});
timepicker对话框的其余代码工作正常
这只是示例代码
请有人帮我摆脱这个谜语。
编辑:
static final int TIME_DIALOG_ID = 998;
private int hour;
private int minute;
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
timePickerListener, hour, minute,false);
}
return null;
}
private TimePickerDialog.OnTimeSetListener timePickerListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour,
int selectedMinute) {
hour = selectedHour;
minute = selectedMinute;
}
}
答案 0 :(得分:0)
您需要将button
或button1
的文字设置为用户实际选择的时间。为此,请在button.setText(<formatted time>)
中编写一些timePickerListener
。
这是一些代码,我用来格式化java.util.Date
对象的日期和时间:
Date date = new Date();
java.text.DateFormat dateFormat = DateFormat.getMediumDateFormat(context);
java.text.DateFormat timeFormat = DateFormat.getTimeFormat(context);
button.setText(String.format("%s %s", dateFormat.format(date), timeFormat.format(date)));
在时间选择器的情况下,您可以将选定的值格式化为字符串:
button.setText(String.format("%02d:%02d", selectedHour, selectedMinute));