システム設定情報変更の検知は
①onConfigurationChangedメソッドをOverrideする
②AndroidManifest.xmlのActivityのandroid:configChanges属性を設定する
属性値は(脱字あるかも)
mcc,mnc,locale,touchscreen,keyboard,keyboardHidden,
navigation,orientition,screenLayout,uiMode,screenSize,smallestScreenSize,fontScaleなど
サンプルコード
①androidManifest.xmlに下記追加
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize">
②
MainActivity.java |
package com.example.liguofeng.onconfigurationchanged;
import android.content.res.Configuration; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import android.widget.Toast;
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }
@Override public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); String orientation = config.orientation == Configuration.ORIENTATION_LANDSCAPE ? "横" : "縦"; Toast.makeText(this, "Screenが" + orientation + "になりました", Toast.LENGTH_LONG ).show(); } }
|