0

次のエラーが表示されます: タイプ SharedPreferences.Editor のメソッド putString(String, String) は、引数 (String, char[]) には適用できません。

...そして、問題が発生する理由や修正方法がわかりません。

私は使用できると思っていました:

editor.putLong("0", data);

しかし、それは単に次の結果になります。

タイプ SharedPreferences.Editor の putLong(String, long) メソッドは、引数 (String, 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(); 

        }
4

2 に答える 2

0

あなたのデータはchar[] 、あなたのメソッド署名は String を受け取りますString.valueOf(data)

editor.putString("0", String.valueOf(data));
于 2013-06-27T20:13:42.697 に答える
0

文字列を必要とするメソッドに char 配列を渡そうとしています。これを試してください:

editor.putString("0", new String(data));
于 2013-06-27T20:17:25.060 に答える