我在运行时动态创建按钮,他们的点击事件会打开一个 datepickerdialog。所以像这样:
Button btnDate = new Button(this);
btnDate.setText("Date");
btnDate.setTag(new UDAControlItemTag(q.getiQuestionID(),-1,f.getiSectionID(),f.getiGroup(),-1,"Date",""));
btnDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Button tempBtn = (Button)v;
UDAControlItemTag tempQ = (UDAControlItemTag)tempBtn.getTag();
showDialog(DATE_DIALOG_ID_Question);
//tempBtn.setText(Integer.toString(mTempMonth));
}
});
然后我有监听器,我可以在其中获取值和内容,但是因为我正在动态创建控件,所以我将每个控件的这些值保存在具有不同属性的 ArrayList 中。我遇到的问题是如何获取我需要的参数,以正确确定单击了哪个按钮,以便将该问题的正确属性放入 ArrayList。
private DatePickerDialog.OnDateSetListener mDateSetListenerQuestion =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mTempYear = year;
mTempMonth = monthOfYear;
mTempDay = dayOfMonth;
}
};
所以在那里我有对话框的值,但我需要有一个与用户单击的按钮相关联的 QuestionID,以便将值放入所有答案的 ArrayList 中,以获取活动上所有动态控件的所有答案. 我真的很感激任何想法,谢谢。