Android開発メモ

忘れそうなのでメモ。

エミュレータの起動元のマシンを見に行く方法

開発環境でサーバを立ててそこのAPIを叩きにいく場合はエミュレータではlocalhostと入れるとエミュレータの中を見に行ってしまう。
10.0.2.2を指定してやると良い。

画面の回転禁止

Androidは画面を傾けると勝手に横向きにしたり、縦向きにしてくれたりするけど、縦固定、横固定にしたいときはAndroidManifest.xmlの指定したいactivityに下記を追加

  • 縦固定
android:screenOrientation="portrait"
  • 横固定
android:screenOrientation="landscape"

画面が回転したときに回転する前のデータを保存する

Androidは画面の向きを切り替えるときは初期化するようで、onCreateからやり直している。
これはつまり、onCreateのときにAPIで情報を取得して、それを表示する。みたいな処理をすると画面の向きが変わるだけでまた情報を取得しにいくという素敵なことになる。
で、回転前にデータを一旦保存しておきたい場合はonRetainNonConfigurationInstanceってメソッドを使うと簡単に保存できる。

Activitiyを継承した何か

  private SaveData saveData;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.mypage);
    
    /**回転時のデータ復元*/
    saveData = (SaveMypage)getLastNonConfigurationInstance();
    if(saveData == null){
      //データが無かったときの処理
    }
    else{
      //あったときの処理
    }
  }
  /**
   * 回転時のデータ保存
   */
  @Override
  public Object onRetainNonConfigurationInstance() {
    return saveData;
  }

こんな感じ。詳しくは下記に載ってる。

https://sites.google.com/a/techdoctranslator.com/jp/resources/articles/articles-index/faster-screen-orientation-change