首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setOnDateChangeListener for CalendarView不起作用

setOnDateChangeListener for CalendarView不起作用
EN

Stack Overflow用户
提问于 2016-03-23 02:24:33
回答 1查看 1.9K关注 0票数 3

我正试图在我的adroid应用程序中为CalendarView提供一个片段。如果我改变了日期,那么吐司就应该打印出来,但它不能这样做。如果用户更改日期,我想要打印吐司。有人能在我的代码中找到漏洞吗?谢谢!

代码语言:javascript
复制
public class CalendarFragment extends Fragment {

public CalendarFragment() {
    // Required empty public constructor
}

CalendarView cal;
Long date;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_calendar, container, false);

    cal = (CalendarView) v.findViewById(R.id.calendarView);
    date = cal.getDate();

    cal.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
            if(cal.getDate() != date) {
                date = cal.getDate();
                Toast.makeText(view.getContext(), "Year=" + year + " Month=" + month + " Day=" + dayOfMonth, Toast.LENGTH_LONG).show();
                //cal.setBackgroundColor(Color.RED);
            }
        }
    });

    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_calendar, container, false);
}

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-23 02:44:10

您已经在onCreateView()中膨胀了视图。但你做了两次了。将onCreateView()更改为

代码语言:javascript
复制
 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_calendar, container, false);

    cal = (CalendarView) v.findViewById(R.id.calendarView);
    date = cal.getDate();

    cal.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
            if(cal.getDate() != date) {
                date = cal.getDate();
                Toast.makeText(view.getContext(), "Year=" + year + " Month=" + month + " Day=" + dayOfMonth, Toast.LENGTH_LONG).show();
                //cal.setBackgroundColor(Color.RED);
            }
        }
    });

    // Inflate the layout for this fragment
    return v;
}

希望能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36168720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档