New API demo for clipboard.
Change-Id: Ifcf52b2f7bae10e77c074868414a57c2d8f67c3c
This commit is contained in:
@@ -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