我有一个 AppCompatSpinner
,我将其条目保存在 strings.xml
文件中,如下所示:
<string-array name="startDayList">
<item>Today</item>
<item>Tomorrow</item>
<item>Pick a day..</item>
</string-array>
使用以下代码将其指定为 AppCompatSpinner 的条目后:android:entries="@array/startDayList"
,AppCompatSpinner 上显示的标题或文本是今天
。
在这里,当用户选择 Pick a day..
条目时,会显示一个 DatePicker
并允许他选择日期/日期。方法如下(案例 2):
startDaySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
DateFormat currentDateFormat = new SimpleDateFormat("dd-MM-yyyy");
startDayString = currentDateFormat.format(new Date());
switch (i) {
case 0:
startDayString = currentDateFormat.format(new Date());
break;
case 1:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
startDayString = dateFormat.format(tomorrow);
break;
case 2:
final Calendar c = Calendar.getInstance();
mYearStartE = c.get(Calendar.YEAR);
mMonthStartE = c.get(Calendar.MONTH);
mDayStartE = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(PostSportRequest.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
startDayString = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
Toast.makeText(getBaseContext(), "startDayString: " + startDayString, Toast.LENGTH_SHORT).show();
}
}, mYearStartE, mMonthStartE, mDayStartE);
datePickerDialog.show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
这段代码保存了在 startDayString
字符串中选择的日期,但是 AppCompatSpinner
的文本仍然被设置为 Pick a day..
所以,我想知道如何将微调器的文本/标题设置为用户选择的日期/日期,而不是选择一天..
请告诉我。
最佳答案
在项目 View 上设置文本:
startDaySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(final AdapterView<?> adapterView, View view, int i, long l) {
DateFormat currentDateFormat = new SimpleDateFormat("dd-MM-yyyy");
startDayString = currentDateFormat.format(new Date());
switch (i) {
case 0:
startDayString = currentDateFormat.format(new Date());
break;
case 1:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
startDayString = dateFormat.format(tomorrow);
break;
case 2:
final Calendar c = Calendar.getInstance();
mYearStartE = c.get(Calendar.YEAR);
mMonthStartE = c.get(Calendar.MONTH);
mDayStartE = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(PurchaseActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
startDayString = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
Toast.makeText(getBaseContext(), "startDayString: " + startDayString, Toast.LENGTH_SHORT).show();
TextView mTextView = (TextView) adapterView.getSelectedView();
mTextView.setText(startDayString);
}
}, mYearStartE, mMonthStartE, mDayStartE);
datePickerDialog.show();
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
关于java - 如何设置 AppCompatSpinner 的文本?请查看详情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745582/