タブレット用プログラムの書き止め

android OS & iPadOS の記録。

メソッド【基礎】アプリ名とバージョンを文字列で返す。

2022-11-12 15:46:38 | Android studio 日記

/*
 * スタート画面にアプリ名とバージョンを表記したい場合はシステムの情報から抜き出す。
 * 下のメソッドはそれを文字列にして返すもの。TextView.setText()で表示する。
 */

  public String getNameAndVersion(Activity activity) {
    try {
      String packageName = activity.getPackageName();
      PackageManager pm = activity.getPackageManager();
      PackageInfo info = pm.getPackageInfo(packageName, PackageManager.GET_META_DATA);

      ApplicationInfo ai = pm.getApplicationInfo(packageName, 0);
      String appName = ai.loadLabel(pm).toString();

      return ( appName + " " + info.versionName );

    } catch (PackageManager.NameNotFoundException e) {
      e.printStackTrace();
      return null;
    }
  }

 


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Fragment【基礎】ジェスチャーの組み込み。

2022-11-12 15:41:50 | Android studio 日記

OnTouchListener()の動作が良く分かっていなかった。
なのでActivityのLayoutビューにOnTouchListener()を設置してGestureDetectorCompatへ横流しをしていた。

何となくMotionEventの流れが末端のビューからActivity(親)まで遡って来るのをイメージできた。
OnTouchListener()の設置場所はFragmentのビューで良いらしい。

fragment_main.xml に View を書いて findViewById().setOnTouchListener()でMotionEventをフック。
return true; でイベント消費すれば、不本意な動作は抑制できそう。

 

public class MainFragment extends Fragment {

        // 省略
    private GestureDetectorCompat mDetector;
    private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {

        // 省略
    }


    @Override
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // 省略

        mDetector = new GestureDetectorCompat( requireContext(), new MyGestureListener() );

        // fragment_main.xml の id にOnTouchListener を設定して mDetector.onTouchEvent()を呼ぶ。
        requireActivity().findViewById(R.id.ui_mainFragment).setOnTouchListener( 
                new View.OnTouchListener() {
                    public boolean onTouch(View v, MotionEvent event) {
                        return mDetector.onTouchEvent(event);
                    }
                }
        );
        // 省略

    }


}

 


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする