diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml index dbcbdab1f..06aff5698 100644 --- a/samples/ApiDemos/AndroidManifest.xml +++ b/samples/ApiDemos/AndroidManifest.xml @@ -148,6 +148,14 @@ + + + + + + + diff --git a/samples/ApiDemos/res/layout/soft_input_modes.xml b/samples/ApiDemos/res/layout/soft_input_modes.xml new file mode 100644 index 000000000..de47bc524 --- /dev/null +++ b/samples/ApiDemos/res/layout/soft_input_modes.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml index 81b5a6de8..1a28a71a6 100644 --- a/samples/ApiDemos/res/values/strings.xml +++ b/samples/ApiDemos/res/values/strings.xml @@ -68,6 +68,15 @@ This text field does not save its state: Initial text. + App/Activity/Soft Input Modes + Shows how different soft input modes impact + application resizing due to an input method. + Resize mode: + This is a part of the application\'s UI that + can resize to adjust for the IME. + Text editor.\n\nTap to show the IME, + which will cause this window to resize as requested. + App/Activity/Persistent State Demonstration of persistent activity state with getPreferences(0).edit() and getPreferences(0). diff --git a/samples/ApiDemos/src/com/example/android/apis/app/SoftInputModes.java b/samples/ApiDemos/src/com/example/android/apis/app/SoftInputModes.java new file mode 100644 index 000000000..8c6dcc393 --- /dev/null +++ b/samples/ApiDemos/src/com/example/android/apis/app/SoftInputModes.java @@ -0,0 +1,67 @@ +package com.example.android.apis.app; + +import com.example.android.apis.R; + +import android.app.Activity; +import android.app.admin.DevicePolicyManager; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.View; +import android.view.WindowManager; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.AdapterView.OnItemSelectedListener; + +/** + * Demonstrates how the various soft input modes impact window resizing. + */ +public class SoftInputModes extends Activity { + Spinner mResizeMode; + final CharSequence[] mResizeModeLabels = new CharSequence[] { + "Unspecified", "Resize", "Pan", "Nothing" + }; + final int[] mResizeModeValues = new int[] { + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED, + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE, + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN, + WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING, + }; + + /** + * Initialization of the Activity after it is first created. Here we use + * {@link android.app.Activity#setContentView setContentView()} to set up + * the Activity's content, and retrieve the EditText widget whose state we + * will persistent. + */ + @Override + protected void onCreate(Bundle savedInstanceState) { + // Be sure to call the super class. + super.onCreate(savedInstanceState); + + // See assets/res/any/layout/save_restore_state.xml for this + // view layout definition, which is being set here as + // the content of our screen. + setContentView(R.layout.soft_input_modes); + + mResizeMode = (Spinner)findViewById(R.id.resize_mode); + ArrayAdapter adapter = new ArrayAdapter(this, + android.R.layout.simple_spinner_item, mResizeModeLabels); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mResizeMode.setAdapter(adapter); + mResizeMode.setSelection(0); + mResizeMode.setOnItemSelectedListener( + new OnItemSelectedListener() { + public void onItemSelected( + AdapterView parent, View view, int position, long id) { + getWindow().setSoftInputMode(mResizeModeValues[position]); + } + + public void onNothingSelected(AdapterView parent) { + getWindow().setSoftInputMode(mResizeModeValues[0]); + } + }); + } +}