Rey Hidayat
Rey Hidayat

Reputation: 31

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags =

Please help me! i found a problem in my activity I am trying to create an Alarm activity by displaying% s as detail (info) from...

My Activity

   mPreAlarm = getIntent().hasExtra(EXTRA_PRE_ALARM_FLAG) && getIntent().getBooleanExtra(EXTRA_PRE_ALARM_FLAG, true);
if (mPreAlarm) {
  String formatString = "%2$tl:%2$tM %2$tp %1$s";
  if (mSettings.getTimeFormatFor(0) == ReyTime.TIME_24) {
    formatString = "%2$tk:%2$tM %1$s";
  }
  mReyerName.setText(String.format(formatString, mReyerNameString, now));
} else {
  mReyerName.setText(getString(R.string.reyer_name_time, mReyerNameString));
}

mAlarmOff = (Button) findViewById(R.id.alarm_off);
mAlarmOff.setOnClickListener(this);

try {
  playAlarm();
} catch (Exception e) {
  Log.e("RingAlarmActivity", e.getMessage(), e);
}

//if(PermissionUtil.hasSelfPermission(this,  Manifest.permission.READ_PHONE_STATE)) {
  TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
  telephonyManager.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
//}

}

My String in my aplication

    <string name="rey_name_time">%s time.</string>

My LogCat, i found a error, and i'm can't fix that

05-11 19:39:53.384 9007-9007/com.rey.kampret E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.rey.kampret, PID: 9007
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rey.kampret/com.rey.kampret.kampret1.RingAlarmActivity}: java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags =  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2680)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6176)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)
 Caused by: java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags =  
    at java.util.Formatter$FormatSpecifier.failMismatch(Formatter.java:4131)
    at java.util.Formatter$FormatSpecifier.checkBadFlags(Formatter.java:3035)
    at java.util.Formatter$FormatSpecifier.checkGeneral(Formatter.java:2993)
    at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:2764)
    at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2591)
    at java.util.Formatter.parse(Formatter.java:2524)
    at java.util.Formatter.format(Formatter.java:2472)
    at java.util.Formatter.format(Formatter.java:2426)
    at java.lang.String.format(String.java:2670)
    at android.content.res.Resources.getString(Resources.java:406)
    at android.content.Context.getString(Context.java:492)
    at com.rey.kampret.kampret1.RingAlarmActivity.onCreate(RingAlarmActivity.java:104)
    at android.app.Activity.performCreate(Activity.java:6679)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2633)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2741) 
  at android.app.ActivityThread.-wrap12(ActivityThread.java) 
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) 
  at android.os.Handler.dispatchMessage(Handler.java:102) 
  at android.os.Looper.loop(Looper.java:154) 
  at android.app.ActivityThread.main(ActivityThread.java:6176) 
  at java.lang.reflect.Method.invoke(Native Method) 
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888) 
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778) 

Upvotes: 3

Views: 5915

Answers (2)

Andr&#233; Luiz Myszko
Andr&#233; Luiz Myszko

Reputation: 401

when you are working with "strings", you need to use "%s", for example:

private String responseUser(User user) {
        return String.format("hello %s, your email %s and pass %s! (log: %s)",
                user.getName(),
                user.getEmail(),
                user.getPass(),
                user.result()
                );
    }

Upvotes: 5

tompadre
tompadre

Reputation: 807

Replace the part of the code where you setting the time format like this:

String formatString = "%1$tl:%1$tM %1$tp %1$s";
  if (mSettings.getTimeFormatFor(0) == ReyTime.TIME_24) {
      formatString = "%1$tk:%1$tM %1$s";
  }

Upvotes: 0

Related Questions