どうしたの
CharSequence contentTitle = R.string.value;
エラーはintからCharSequenceに変換できません。これを回避する方法はありますか、それとも何かが足りませんか?私は試した
String s = R.string.value + "";
CharSequence contentTitle = s;
整数値を返します。何か助けはありますか?
R.string.value
は、クラスRの静的フィールドへの呼び出しです。これは、Eclipseによって自動生成され、すべてのリソースの一種の要約を実行します。文字列を取得するには、次を使用する必要があります。
CharSequence contentTitle = getString(R.string.value);
Rクラスを開くと、プロジェクトのコンパイル済みリソースへの参照である番号のみが含まれていることがわかります。
文字列を取得するには、getString()を使用する必要があります。
ただし、getString()はContextクラスのメソッドです。 Activityクラスの外部でこのメソッドを使用する場合は、最初にコンテキストへのリンクを取得してから、次を呼び出す必要があります。
String s = mContext.getString(R.string.somestring)
R.string.valueは、リソース 'value'の参照ID番号を返します。 Rクラスを見ると、次のように表示されます。
public static final class string {
public static final int value=0x7f040007;
}
GetString()メソッドの参照で問題が発生しています。 Eclipseが私に吐き出す正確なエラーは次のとおりです。
GetString(int)メソッドは、タイプDatabaseHelper.MainDatabaseHelperに対して未定義です。
しばらく読んだ後、getString()メソッドにアクセスするには、アプリケーションのコンテキストを参照する必要があることがわかりました。コンテンツプロバイダーでプライベートSQLDatabaseヘルパークラスを作成しようとしましたが、getString()メソッドを参照できませんでした。これまでの私の解決策は、次のようなことを行うことです。
private class MainDatabaseHelper extends SQLiteOpenHelper {
MainDatabaseHelper(Context context) {
super(context, context.getString(R.string.createRoutesTable), null, 1);
}
public void onCreate(SQLiteDatabase db) {
db.execSQL((getContext()).getString(R.string.createRoutesTable));
}
}
次の2つのコンテキスト参照に注意してください。
コンテキスト。getString()
(getContext())。getString()
これが最適な長期的解決策であるかどうかはわかりませんが、今のところうまくいくようです。お役に立てれば。
String s = getResources().getString(R.string.value);
も使用できます。