我正在使用按鈕作爲日期選擇器。選擇日期後應該在按鈕上設置日期。我生成此按鈕pro語法或dynamic.When以往我點擊它只會改變事先最後一個按鈕created.Thanks的文字按鈕...如何設置按鈕文本點擊動態生成的按鈕並使用對話框
private void init() {
edit = new ArrayList<EditText>();
listButtons = new ArrayList<Button>();
add = (Button) findViewById(R.id.add);
dynamic = (LinearLayout) findViewById(R.id.dynamic);
params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addLayout();
}
});
ok = (Button) findViewById(R.id.ok);
ok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for(int i = 0;i<edit.size();i++)
{
String names = edit.get(i).getText().toString();
String Min = listButtons.get(i).getText().toString();
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
// set date picker as current date
Time today = new Time(Time.getCurrentTimezone());
today.setToNow();
day = today.monthDay;
month = today.month;
year= today.year;
return new DatePickerDialog(this, datePickerListener, year,
month, day);
}
return new DatePickerDialog(this, datePickerListener, year,
month, day);
}
private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
year = selectedYear;
month = selectedMonth + 1;
day = selectedDay;
btn_date.setText(day+"/"+month+"/"+year);
}
};
private void addLayout() {
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.HORIZONTAL);
editText = new EditText(this);
editText.setId(j);
editText.setText("Test "+(j+1)+" ");
ll.addView(dose);
edit.add(dose);
// Create Button
btn_date = new Button(this);
// Give button an ID
btn_date.setId(j);
btn_date.setHint("Select Date");
// set the layoutParams on the button
btn_date.setLayoutParams(params);
final int index = j;
// Set click listener for button
btn_date.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.i("TAG", "index :" + index);
Toast.makeText(getApplicationContext(),
"Clicked Button Index :" + index+dose.getText().toString(),
Toast.LENGTH_LONG).show();
System.out.println(dose.getText().toString());
showDialog(DATE_DIALOG_ID+index);
}
});
//Add button to LinearLayout
ll.addView(btn_date);
listButtons.add(btn_date);
//Add button to LinearLayout defined in XML
dynamic.addView(ll);
j++;
}
}
但是我無法通過第一視圖當我創建它....... – Runi 2014-10-03 05:46:54
我不知道我理解你的問題,但我希望你設法找出現在。如果你這樣做,請考慮分享你的發現:-) – 2014-10-07 07:22:37