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]);
+ }
+ });
+ }
+}