fragmentの回転時の処理

fragmentで回転させると当然activityが初期化されるけど、fragmentでインスタンスを保存してonCreateで復元させるときなぜかnullpointさんがでた。

onCreateでgetActivityはできないようだ。

仕方ないのでonCreateでBundleに保存さしてonStartで復元させるというやり方にした。

たぶんスマートではないけど動いたのでいいとする。

Bundle mSavedInstanceState;
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Log.d("Lifecycle", "onSaveInstanceState()");

    //インスタンスの保存

    outState.putString("kusuriInfo", kusuriInfo.getText().toString());
}

@Override
 public void onStart() {
 super.onStart();
if(mSavedInstanceState!=null){//回転時の復元処理
    String value = mSavedInstanceState.getString("kusuriInfo");
    kusuriInfo.setText(value);

}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //ここだけだとnullpointなるからonstartで復元させる
    mSavedInstanceState=savedInstanceState;

}

GalaxyJのバグ

現在在庫管理システムを絶賛製作中だけど、機種によってUSBバーコードリーダの挙動がことなるから困ってしまう。GalaxyJのUsbManagerがnullを返す問題はSamsungにバグレポートを送るか悩み中。

バーコードリーダが接続されてるかのclassだけどこれでいいものだろうか

boolean USBexist=false;
boolean exist=false;
      boolean returnExist=false;
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
   HashMap<String, UsbDevice> map=manager.getDeviceList();
   Iterator<UsbDevice> it = map.values().iterator();
   while(it.hasNext()) {
       UsbDevice device = it.next();
          USBexist=true;
          returnExist=true;
       Log.d("USB", "NAME =" + device.getDeviceName());
       // use device info
      //if(showMessage)Toast.makeText(getApplicationContext(), "USBが接続されました。", Toast.LENGTH_SHORT).show();
     }

      if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
          exist=true;
          returnExist=true;
          //if(showMessage)Toast.makeText(getApplicationContext(), "バーコードスキャナーが接続されました。", Toast.LENGTH_SHORT).show();
          //((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker();
          //Toast.makeText(this, "Barcode Scanner detected. Please turn OFF Hardware/Physical keyboard to enable softkeyboard to function.", Toast.LENGTH_LONG).show();
      }