実現したいこと
「MainActivity.kt」にてプリファレンスに保存した値を、「TrimView.java」という自作のクラスの中で読み込んで使用したいです。
わからないこと
「MainActivity.kt」では「getSharedPreferences」を使って、問題なくプリファレンスに値を保存して読み込むことができているのですが、同じことを「TrimView.java」で行うとエラーが出てしまいビルドができません。
javaクラスではこのメソッドは使用できないのでしょうか。
エラー内容
エラー: シンボルを見つけられません
シンボル: メソッド getSharedPreferences(String,int)
場所: クラス TrimView
MainActivity.kt
kotlin
1... 2class MainActivity : AppCompatActivity(), CvCameraViewListener2, SensorEventListener { 3 ... 4 lateinit var HSVsharedPref : SharedPreferences 5 lateinit var TrimsharedPref : SharedPreferences 6 ... 7 override fun onCreate(savedInstanceState: Bundle?) { 8 ... 9 // プリファレンスの設定 10 HSVsharedPref = getSharedPreferences(getString(R.string.preferences_key), Context.MODE_PRIVATE) // HSV保存用 11 TrimsharedPref = getSharedPreferences(getString(R.string.preferences_key), Context.MODE_PRIVATE) // 矩形保存用 12 ... 13 // 非同期でプリファレンスに値を保存 14 HSVsharedPref.edit().putString("value_hue_low", lower_hue.toString()).apply() 15 HSVsharedPref.edit().putString("value_hue_high", higher_hue.toString()).apply() 16 ... 17 // HSVプリファレンスに保存されているデータを取得 18 val savedHueLow = HSVsharedPref.getString("value_hue_low", "100") 19 val savedHueHigh = HSVsharedPref.getString("value_hue_high", "155") 20 } 21 ... 22}
TrimView.java
java
1package jp.gr.java_conf.coskx.fishinggame; 2import ... 3 4public class TrimView extends AppCompatImageView { 5 TextView rectLeft = (TextView) this.findViewById(R.id.txtRectLeft); 6 TextView rectTop = (TextView) this.findViewById(R.id.txtRectTop); 7 TextView rectRight = (TextView) this.findViewById(R.id.txtRectRight); 8 TextView rectBottom = (TextView) this.findViewById(R.id.txtRectBottom); 9 ... 10 11 // インタフェースの作成 12 interface OnActionUpListener { 13 void onActionUp(Rect rect); 14 } 15 16 // リスナーを定義 17 void setOnActionUpListener(OnActionUpListener listener) { 18 this.onActionUpListener = listener; 19 } 20 21 // 矩形の設定 22 public TrimView(Context context, AttributeSet attrs) { 23 super(context, attrs); 24 rect = new Rect(); 25 paint = new Paint(); 26 paint.setColor(0xFFFF0000); // 線の色 27 paint.setStyle(Paint.Style.STROKE); 28 paint.setStrokeJoin(Paint.Join.ROUND); 29 paint.setStrokeCap(Paint.Cap.ROUND); 30 paint.setStrokeWidth(strokeWidth); // 線の太さ 31 32 // プリファレンスから値を読み込んで矩形のサイズを更新 33 dataStore = getSharedPreferences("prefHSV", MODE_PRIVATE); 34 // String str = dataStore.getString("key", "Nothing"); 35 36 // 矩形のサイズ設定 37 rect.set(firstX, firstY, rect.left + rectW, rect.top + rectH); 38 } 39 40 @Override 41 protected void onDraw(@NonNull Canvas canvas) { 42 canvas.drawRect(rect, paint); // 矩形を描画 43 // キャンバスのサイズ取得 44 canvasW = getWidth(); 45 canvasH = getHeight(); 46 } 47 48 @Override 49 public boolean performClick() { 50 super.performClick(); 51 return true; 52 } 53 54 @Override 55 @SuppressLint("ClickableViewAccessibility") 56 public boolean onTouchEvent(@NonNull MotionEvent event) { 57 // 矩形を操作した際の処理 58 ... 59 } 60 return true; 61 } 62}
該当箇所
// プリファレンスから値を読み込んで矩形のサイズを更新 dataStore = getSharedPreferences("prefHSV", MODE_PRIVATE); // String str = dataStore.getString("key", "Nothing");
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/29 14:42
2022/06/29 16:53 編集
2022/06/29 18:45
2022/06/30 04:09 編集
2022/06/30 05:35
2022/06/30 06:54