どうしたの
CharSequence contentTitle = R.string.value;
エラーは int から CharSequence に変換できません。これを回避する方法はありますか、それとも何か不足していますか? 私は試した
String s = R.string.value + "";
CharSequence contentTitle = s;
整数値を返します。何か助けはありますか?
どうしたの
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 は、リソース「値」の参照 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()
これが最適な長期的な解決策であるかどうかはわかりませんが、現時点ではうまくいくようです. お役に立てれば。