第二例:Clipboard剪贴板
来源:互联网 发布:网络种地实例 编辑:程序博客网 时间:2024/06/07 06:29
剪贴板:主程序
资源文件strings.xml:
package demo.my.com.myapidemo.content;import android.app.Activity;import android.content.ClipData;import android.content.ClipboardManager;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.text.method.LinkMovementMethod;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;import demo.my.com.myapidemo.R;/** * Created by Hack on 2015/10/10. */public class ClipboardSample extends Activity { ClipboardManager mClipboard; Spinner mSpinner; TextView mMimeTypes; TextView mDataText; CharSequence mStyledText; String mPlainText; String mHtmlText; String mHtmlPlainText; ClipboardManager.OnPrimaryClipChangedListener mPrimaryChangeListener = new ClipboardManager.OnPrimaryClipChangedListener() { public void onPrimaryClipChanged() { updateClipData(true); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mClipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE); 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 AdapterView.OnItemSelectedListener() { public void onItemSelected( AdapterView<?> parent, View view, int position, long id) { updateClipData(false); } public void onNothingSelected(AdapterView<?> parent) { } }); mMimeTypes = (TextView)findViewById(R.id.clip_mime_types); mDataText = (TextView)findViewById(R.id.clip_text); mClipboard.addPrimaryClipChangedListener(mPrimaryChangeListener); updateClipData(true); } @Override protected void onDestroy() { super.onDestroy(); mClipboard.removePrimaryClipChangedListener(mPrimaryChangeListener); } public void pasteStyledText(View button) { mClipboard.setPrimaryClip(ClipData.newPlainText("Styled Text", mStyledText)); } public void pastePlainText(View button) { mClipboard.setPrimaryClip(ClipData.newPlainText("Styled Text", mPlainText)); } public void pasteHtmlText(View button) { mClipboard.setPrimaryClip(ClipData.newHtmlText("HTML Text", mHtmlPlainText, mHtmlText)); } public void pasteIntent(View button) { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.android.com/")); mClipboard.setPrimaryClip(ClipData.newIntent("VIEW intent", intent)); } public void pasteUri(View button) { mClipboard.setPrimaryClip(ClipData.newRawUri("URI", Uri.parse("http://www.android.com/"))); } void updateClipData(boolean updateType) { ClipData clip = mClipboard.getPrimaryClip(); String[] mimeTypes = clip != null ? clip.getDescription().filterMimeTypes("*/*") : null; if (mimeTypes != null) { mMimeTypes.setText(""); for (int i=0; i<mimeTypes.length; i++) { if (i > 0) { mMimeTypes.append("\n"); } mMimeTypes.append(mimeTypes[i]); } } else { mMimeTypes.setText("NULL"); } if (updateType) { if (clip != null) { ClipData.Item item = clip.getItemAt(0); if (item.getText() != null) { mSpinner.setSelection(1); } else if (item.getIntent() != null) { mSpinner.setSelection(3); } else if (item.getUri() != null) { mSpinner.setSelection(4); } else { mSpinner.setSelection(0); } } else { mSpinner.setSelection(0); } } if (clip != null) { ClipData.Item item = clip.getItemAt(0); switch (mSpinner.getSelectedItemPosition()) { case 0: mDataText.setText("(No data)"); break; case 1: mDataText.setText(item.getText()); break; case 2: mDataText.setText(item.getHtmlText()); break; case 3: mDataText.setText(item.getIntent().toUri(0)); break; case 4: mDataText.setText(item.getUri().toString()); break; case 5: mDataText.setText(item.coerceToText(this)); break; case 6: mDataText.setText(item.coerceToStyledText(this)); break; case 7: mDataText.setText(item.coerceToHtmlText(this)); break; default: mDataText.setText("Unknown option: " + mSpinner.getSelectedItemPosition()); break; } } else { mDataText.setText("(NULL clip)"); } mDataText.setMovementMethod(LinkMovementMethod.getInstance()); }}
xml文件
<?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--><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout 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:textStyle="normal" /> </LinearLayout> <LinearLayout 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:textStyle="normal" /> </LinearLayout> <LinearLayout 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> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="8dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Data type: " /> <Spinner android:id="@+id/clip_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:prompt="@string/clip_type_prompt" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="MIME types: " /> <TextView android:id="@+id/clip_mime_types" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" android:background="#ff303030" android:padding="4dp" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:textAppearance="?android:attr/textAppearanceMedium" android:text="Data content:" /> <TextView android:id="@+id/clip_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ff303030" android:padding="4dp" android:textAppearance="?android:attr/textAppearanceMedium" /> </LinearLayout></ScrollView>
资源文件strings.xml:
<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>
arrays.xml
<!-- Used in content/ClipboardSample.java --> <string-array name="clip_data_types"> <item>No data in clipboard</item> <item>Text clip</item> <item>HTML Text clip</item> <item>Intent clip</item> <item>Uri clip</item> <item>Coerce to text</item> <item>Coerce to styled text</item> <item>Coerce to HTML text</item> </string-array>
0 0
- 第二例:Clipboard剪贴板
- 剪贴板(Clipboard)
- android clipboard 剪贴板 新方法
- win10 UWP 剪贴板 Clipboard
- Android Clipboard(复制/剪贴板)
- Android Clipboard(复制/剪贴板)
- Android Clipboard(复制/剪贴板)
- Android Clipboard(复制/剪贴板)
- java AWT 剪贴板Clipboard
- C++ builder 剪贴板Clipboard使用
- VC++中使用剪贴板clipboard
- Zero Clipboard复制到剪贴板
- clipboard.js 复制到剪贴板
- 9-3 处理剪贴板(Clipboard Handling)
- 剪贴板大观园(三): Clipboard 问答集
- Qt/PyQt中操作系统剪贴板(clipboard)
- 进程间通信之剪贴板clipboard
- [React Native]访问操作系统剪贴板 Clipboard
- ectouch 最新版的调试方式 。。ectouch很容易出现 404 错误 因为他是thinkphp写的
- varnishd安装与配置
- web提示问题
- codeforces 324# C. Marina and Vasya (贪心)
- 在代码中设置文字的大小,可以指定单位
- 第二例:Clipboard剪贴板
- 初次接触到session
- iOS开发5-自动旋转和自动布局
- java 获取进程ID 物理内存 cpu使用百分比(linux环境)
- Linux-CentOS7 KDE 中文语言支持
- 10 个非常重要的 HotSpot JVM 参数
- C++Primer阅读留存问题
- java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
- 自己理解的KMP