【问题标题】:Application crashes when double tap on DatePicker双击 DatePicker 时应用程序崩溃
【发布时间】:2016-04-28 18:44:37
【问题描述】:

我设法获得了一个自定义 DatePicker 并将其添加到我的项目中,但问题是,当我在某个日期录制两次时,应用程序崩溃了!

自定义日期选择器代码:

package com.example.logindesign;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewParent;
import android.widget.CalendarView;


public class CalendarViewScrollable extends CalendarView {
    public CalendarViewScrollable(Context context) {
        super(context);
    }

    public CalendarViewScrollable(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CalendarViewScrollable(Context context, AttributeSet attrs,
            int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev)
    {
        if (ev.getActionMasked() == MotionEvent.ACTION_DOWN)
        {
            ViewParent p = getParent();
            if (p != null)
                p.requestDisallowInterceptTouchEvent(true);
        }

        return false;
    }

}

这就是我在主要活动中使用该类的方式:

final TextView dateT=(TextView)findViewById(R.id.TextDate);
    dateT.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v){
            DatePickerDialog datepicker= new DatePickerDialog(MainActivity.this,new DatePickerDialog.OnDateSetListener() {                      
                    @Override
                    public void onDateSet(DatePicker view, int year, int month,
                            int day) {
                        // TO DO Auto-generated method stub 
                        month+=1;   
                        dateT.setText(+year + "  /  " + month + "  /  " + day);
                        jn=day;
                        mn=month;
                        an=year;
                    }
                },1990,1,1);
        datepicker.setTitle("Sélectionner la date de naissance");
        datepicker.updateDate(1990, 1, 1);
        datepicker.show();

        }
    });

日志猫:

04-28 20:02:39.504: E/AndroidRuntime(27825): FATAL EXCEPTION: main
04-28 20:02:39.504: E/AndroidRuntime(27825): Process:       com.example.logindesign, PID: 27825
04-28 20:02:39.504: E/AndroidRuntime(27825):     java.util.IllegalFormatConversionException: %d can't format java.lang.String    arguments
04-28 20:02:39.504: E/AndroidRuntime(27825):    at  java.util.Formatter.badArgumentType(Formatter.java:1489)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.util.Formatter.transformFromInteger(Formatter.java:1689)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.util.Formatter.transform(Formatter.java:1461)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.util.Formatter.doFormat(Formatter.java:1081)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.util.Formatter.format(Formatter.java:1042)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.util.Formatter.format(Formatter.java:1011)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at java.lang.String.format(String.java:1803)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at android.content.res.Resources.getString(Resources.java:668)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at android.content.Context.getString(Context.java:390)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at android.widget.SimpleMonthView$MonthViewTouchHelper.getItemDescription(SimpleMonthView.java:683)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at android.widget.SimpleMonthView$MonthViewTouchHelper.onPopulateEventForVirtualVie w(SimpleMonthView.java:620)
04-28 20:02:39.504: E/AndroidRuntime(27825):    at     com.android.internal.widget.ExploreByTouchHelper.createEventForChild(ExploreByTo    uchHelper.java:294)

【问题讨论】:

  • Logcat,堆栈跟踪?为什么要标记 PHP?
  • 我已经更新了帖子,对不起,mb
  • 请发布您的自定义 DatePicker 的代码......

标签: android eclipse datepicker


【解决方案1】:

这是特定设备的问题

记录或提示选择的日期,DatePicker 使用

https://android.googlesource.com/platform/frameworks/opt/datetimepicker/+/master/res/values-es/strings.xml#29

但由于某种原因,它得到“%d selected”并且格式日期不是整数。

看到这个答案:https://stackoverflow.com/a/31855744/848072。它提出了一个补丁。使用不寻找错误资源的主题,导致格式错误。

也许这些没有补丁,所以同时使用解决方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-02
    • 2017-09-27
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多