2013-06-27 104 views
0

我收到一个错误,指出:方法putString(String,String)类型为SharedPreferences .Editor不适用于参数(字符串,字符[])SharedPreferences.Editor类型中的putString(String,String)方法不适用于参数(String,char [])

...我不知道为什么发生此问题或我如何纠正它。

我想我可以使用:

editor.putLong("0", data); 

但是,这只会导致:

的方法putLong(字符串,长)的类型SharedPreferences.Editor不适用的参数(字符串,CHAR [])就行发生

错误:

editor.putLong( “0”,数据);

来源:

public class DataCountService extends Service { 
    String text = "USR;1"; 
    String ERROR = Constants.PREFS_NAME; 
    private Timer timer = new Timer(); 
    private long period; 
    private long delay_interval; 

    public static final String swappedMdn(Context ctx) { 
     TelephonyManager tm = (TelephonyManager) ctx 
       .getSystemService(Context.TELEPHONY_SERVICE); 

     // Extract the phone number from the TelephonyManager instance 
     String mdn = tm.getLine1Number(); 

     // Insure MDN is 10 characters 
     if (mdn.length() < 10 || mdn == null) 
      mdn = "0000000000"; 

     // Extract last 10 digits of MDN 
     if (mdn.length() > 10) 
      mdn = mdn.substring(mdn.length() - 10, mdn.length()); 
     char data[] = mdn.toCharArray(); 
     char digit; 
     for (int index = 0; index < mdn.length() - (mdn.length()) % 2; index += 2) { 
      digit = data[index]; 
      data[index] = data[index + 1]; 
      data[index + 1] = digit; 

      Intent i = new Intent(ctx, DataCountService.class); 


       SharedPreferences settings = ctx.getSharedPreferences(Constants.PREFS_NAME, 0); 
       Editor editor = settings.edit(); 
       editor.putString("0", data); 
       editor.commit(); 

     } 

回答

0

您的数据是char[],你的方法签名接受一个String,只是把String.valueOf(data)

editor.putString("0", String.valueOf(data)); 
+0

@ user2528574 i更新了答案 – nachokk

0

您试图将字符数组传递给需要字符串的方法。尝试这样做:

editor.putString("0", new String(data)); 
相关问题