New API demo showing different soft input modes.

Change-Id: I2aa53a093df0bd11d9bbe9eb866d2309f113d96d
This commit is contained in:
Dianne Hackborn
2010-10-29 17:24:41 -07:00
parent 6a89a9ead0
commit 6d36a9ee9b
4 changed files with 148 additions and 0 deletions

View File

@@ -148,6 +148,14 @@
</intent-filter>
</activity>
<activity android:name=".app.SoftInputModes"
android:label="@string/soft_input_modes">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.SAMPLE_CODE" />
</intent-filter>
</activity>
<activity android:name=".app.ReceiveResult" android:label="@string/activity_receive_result">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Demonstrates different soft input modes.
See corresponding Java code com.android.sdk.app.SoftInputModes.java. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingBottom="4dip"
android:textAppearance="?android:textAppearanceMedium"
android:text="@string/soft_input_modes_summary"/>
<LinearLayout android:orientation="horizontal" android:gravity="center"
android:layout_width="match_parent" android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:textAppearanceMedium"
android:text="@string/soft_input_modes_label"/>
<Spinner android:id="@+id/resize_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true">
</Spinner>
</LinearLayout>
<TextView
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingBottom="6dip"
android:background="@drawable/red"
android:textAppearance="?android:textAppearanceMedium"
android:text="@string/soft_input_modes_content"/>
<EditText android:id="@+id/saved"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:layout_weight="0"
android:background="@drawable/green"
android:text="@string/soft_input_modes_initial_text"
android:freezesText="true">
<requestFocus />
</EditText>
</LinearLayout>

View File

@@ -68,6 +68,15 @@
<string name="no_saves_state">This text field does not save its state:</string>
<string name="initial_text">Initial text.</string>
<string name="soft_input_modes">App/Activity/Soft Input Modes</string>
<string name="soft_input_modes_summary">Shows how different soft input modes impact
application resizing due to an input method.</string>
<string name="soft_input_modes_label">Resize mode: </string>
<string name="soft_input_modes_content">This is a part of the application\'s UI that
can resize to adjust for the IME.</string>
<string name="soft_input_modes_initial_text">Text editor.\n\nTap to show the IME,
which will cause this window to resize as requested.</string>
<string name="activity_persistent">App/Activity/Persistent State</string>
<string name="persistent_msg">Demonstration of persistent activity state with getPreferences(0).edit() and getPreferences(0).</string>

View File

@@ -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<CharSequence> adapter = new ArrayAdapter<CharSequence>(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]);
}
});
}
}