编辑:它已经修复了!解决方案是更新我的设备,以便API与模拟器匹配。事后似乎显而易见,但我认为较低的API开发目标可以避免这个问题。感谢您的提示!
我正在开发一个简单的应用程序,它使用日历来切换您想要查看的指南的哪个部分。在模拟器中,我将这个漂亮的日历放在顶部,底部是文本。
然而,当我在我的设备上运行该应用程序时,日历会爆炸到所有可能的月份,而且任何地方都没有文字!
有什么方法可以强制我们使用更紧凑的日历版本吗?
(我没有足够的代表来发布图片,因此这是一张展示我问题的imgur专辑。http://imgur.com/a/4SSvo)
模拟器是API23,Device是API22。该项目正在为API14开发,这真的是问题吗?
这是CalendarView的.xml
<CalendarView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/calendarView"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:minDate="04/06/2009"
android:maxDate="01/31/2010"
android:fitsSystemWindows="true"
/>
在.java文件中,我有一个更改文本的监听器。
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*
irrelevant code
*/
calendar = (CalendarView)findViewById(R.id.calendarView);
/*
more irrelevant code
*/
calendar.setOnDateChangeListener(this);
}
@Override
public void onSelectedDayChange(CalendarView calendarView, int i, int i1, int i2) { // year, month, day
int j = 1;
boolean found = false;
while((j < allDays.length-1) && !found)
{
if((allDays[j].getMonth() == i1+1) && (allDays[j].getDay() == i2))
{
found = true;
}
else
{
j++;
}
}
if(found)
{
index = j;
changeText.setText(allDays[j].getGuide());
adjustSize();
}
else
{
changeText.setText("No action today");
}
}
希望这是足够的信息。