New API demo for clipboard.
Change-Id: Ifcf52b2f7bae10e77c074868414a57c2d8f67c3c
This commit is contained in:
@@ -721,6 +721,13 @@
|
||||
<!-- CONTENT PACKAGE SAMPLES -->
|
||||
<!-- ************************************* -->
|
||||
|
||||
<activity android:name=".content.ClipboardSample" android:label="@string/activity_clipboard">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.SAMPLE_CODE" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".content.ExternalStorage" android:label="@string/activity_external_storage">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
99
samples/ApiDemos/res/layout/clipboard.xml
Normal file
99
samples/ApiDemos/res/layout/clipboard.xml
Normal file
@@ -0,0 +1,99 @@
|
||||
<?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 clipboard.
|
||||
|
||||
See corresponding Java code:
|
||||
com.example.android.apis.content.ClipboardSample
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button android:id="@+id/copy_styled_text"
|
||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
android:onClick="pasteStyledText"
|
||||
android:text="@string/copy_text" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/styled_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textStyle="normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button android:id="@+id/copy_plain_text"
|
||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
android:onClick="pastePlainText"
|
||||
android:text="@string/copy_text" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/plain_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textStyle="normal" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button android:id="@+id/copy_intent"
|
||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
android:onClick="pasteIntent"
|
||||
android:text="@string/copy_intent" />
|
||||
|
||||
<Button android:id="@+id/copy_uri"
|
||||
android:layout_width="wrap_content" android:layout_height="wrap_content"
|
||||
android:onClick="pasteUri"
|
||||
android:text="@string/copy_uri" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<Spinner android:id="@+id/clip_type"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawSelectorOnTop="true"
|
||||
android:prompt="@string/clip_type_prompt"
|
||||
/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/clip_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0px"
|
||||
android:layout_weight="1"
|
||||
android:textStyle="normal"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -38,6 +38,14 @@
|
||||
<item>Pluto</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Used in content/ClipboardSample.java -->
|
||||
<string-array name="clip_data_types">
|
||||
<item>No data in clipboard</item>
|
||||
<item>Text clip</item>
|
||||
<item>Intent clip</item>
|
||||
<item>Uri clip</item>
|
||||
</string-array>
|
||||
|
||||
<!-- Used in App/SearchInvoke.java -->
|
||||
<string-array name="search_menuModes">
|
||||
<item>Search Key</item>
|
||||
|
||||
@@ -266,6 +266,12 @@
|
||||
<!-- app/content examples strings -->
|
||||
<!-- ============================== -->
|
||||
|
||||
<string name="activity_clipboard">Content/Clipboard/Data Types</string>
|
||||
<string name="copy_text">Copy Text</string>
|
||||
<string name="copy_intent">Copy Intent</string>
|
||||
<string name="copy_uri">Copy URI</string>
|
||||
<string name="clip_type_prompt">Clip Type</string>
|
||||
|
||||
<string name="activity_external_storage">Content/Storage/External Storage</string>
|
||||
<string name="create">Create</string>
|
||||
<string name="delete">Delete</string>
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
package com.example.android.apis.content;
|
||||
|
||||
import com.example.android.apis.R;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.ClippedData;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
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;
|
||||
|
||||
public class ClipboardSample extends Activity {
|
||||
ClipboardManager mClipboard;
|
||||
|
||||
Spinner mSpinner;
|
||||
EditText mEditText;
|
||||
|
||||
CharSequence mStyledText;
|
||||
String mPlainText;
|
||||
|
||||
ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener
|
||||
= new ClipboardManager.OnPrimaryClipChangedListener() {
|
||||
@Override
|
||||
public void onPrimaryClipChanged() {
|
||||
updateClipData();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
|
||||
|
||||
// See res/any/layout/resources.xml for this view layout definition.
|
||||
setContentView(R.layout.clipboard);
|
||||
|
||||
TextView tv;
|
||||
|
||||
mStyledText = getText(R.string.styled_text);
|
||||
tv = (TextView)findViewById(R.id.styled_text);
|
||||
tv.setText(mStyledText);
|
||||
|
||||
mPlainText = mStyledText.toString();
|
||||
tv = (TextView)findViewById(R.id.plain_text);
|
||||
tv.setText(mPlainText);
|
||||
|
||||
mSpinner = (Spinner) findViewById(R.id.clip_type);
|
||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
|
||||
this, R.array.clip_data_types, android.R.layout.simple_spinner_item);
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
|
||||
mSpinner.setAdapter(adapter);
|
||||
mSpinner.setOnItemSelectedListener(
|
||||
new OnItemSelectedListener() {
|
||||
public void onItemSelected(
|
||||
AdapterView<?> parent, View view, int position, long id) {
|
||||
}
|
||||
public void onNothingSelected(AdapterView<?> parent) {
|
||||
}
|
||||
});
|
||||
|
||||
mEditText = (EditText)findViewById(R.id.clip_text);
|
||||
|
||||
mClipboard.addPrimaryClipChangedListener(mPrimaryChangeListener);
|
||||
updateClipData();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
mClipboard.removePrimaryClipChangedListener(mPrimaryChangeListener);
|
||||
}
|
||||
|
||||
public void pasteStyledText(View button) {
|
||||
mClipboard.setPrimaryClip(new ClippedData("Styled Text", null,
|
||||
new ClippedData.Item(mStyledText)));
|
||||
}
|
||||
|
||||
public void pastePlainText(View button) {
|
||||
mClipboard.setPrimaryClip(new ClippedData("Plain Text", null,
|
||||
new ClippedData.Item(mPlainText)));
|
||||
}
|
||||
|
||||
public void pasteIntent(View button) {
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.android.com/"));
|
||||
mClipboard.setPrimaryClip(new ClippedData("View intent", null,
|
||||
new ClippedData.Item(intent)));
|
||||
}
|
||||
|
||||
public void pasteUri(View button) {
|
||||
mClipboard.setPrimaryClip(new ClippedData("View intent", null,
|
||||
new ClippedData.Item(Uri.parse("http://www.android.com/"))));
|
||||
}
|
||||
|
||||
void updateClipData() {
|
||||
ClippedData clip = mClipboard.getPrimaryClip();
|
||||
if (clip == null) {
|
||||
mSpinner.setSelection(0);
|
||||
mEditText.setText("");
|
||||
} else if (clip.getItem(0).getText() != null) {
|
||||
mSpinner.setSelection(1);
|
||||
mEditText.setText(clip.getItem(0).getText());
|
||||
} else if (clip.getItem(0).getIntent() != null) {
|
||||
mSpinner.setSelection(2);
|
||||
mEditText.setText(clip.getItem(0).getIntent().toUri(0));
|
||||
} else if (clip.getItem(0).getUri() != null) {
|
||||
mSpinner.setSelection(3);
|
||||
mEditText.setText(clip.getItem(0).getUri().toString());
|
||||
} else {
|
||||
mSpinner.setSelection(0);
|
||||
mEditText.setText("Clip containing no data");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -38,11 +38,9 @@ import android.widget.TextView;
|
||||
* @see StyledText for more depth about using styled text, both with getString()
|
||||
* and in the layout xml files.
|
||||
*/
|
||||
public class ResourcesSample extends Activity
|
||||
{
|
||||
public class ResourcesSample extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// See res/any/layout/resources.xml for this view layout definition.
|
||||
@@ -54,8 +52,8 @@ public class ResourcesSample extends Activity
|
||||
|
||||
// ====== Using the Context.getString() convenience method ===========
|
||||
|
||||
// Using the getString() conevenience method, retrieve a string
|
||||
// resource that hapepns to have style information. Note the use of
|
||||
// Using the getString() convenience method, retrieve a string
|
||||
// resource that happens to have style information. Note the use of
|
||||
// CharSequence instead of String so we don't lose the style info.
|
||||
cs = getText(R.string.styled_text);
|
||||
tv = (TextView)findViewById(R.id.styled_text);
|
||||
|
||||
Reference in New Issue
Block a user