2015-10-19 6 views
26

Android documentationによると、ClipDataはコピーされたデータの表現の一種として "label"を使用します。AndroidのClipDataの "label"パラメータは正確に何ですか?

ClippedDataは、1つまたは複数のItemインスタンスを含む複合型です。それぞれは、データ項目の1つ以上の表現を保持できます。ユーザーへの表示のために、それはまたラベルと象徴的な表現を有する。

は、そしてそれは、さらにいくつかのAPI docsでクリップデータ用ユーザに見えるラベルとして「ラベル」を説明しています。しかし、私はまだラベルの使い方について混乱しています。

このラベルはどのようにユーザーに表示されますか?私はそれをどのように使うべきですか? ClipDataファクトリメソッドnewPlainText(CharSequence label, CharSequence text)を呼び出すと、このラベルに何を設定する必要がありますか?例えば:

private void copyToClipBoard() { 

    ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
    ClipData clip = ClipData.newPlainText(
      "text label", // What should I set for this "label"? 
      "content to be copied"); 
    clipboard.setPrimaryClip(clip); 
    Toast.makeText(AboutActivity.this, "Saved to clip board", Toast.LENGTH_SHORT).show(); 
} 

事前にありがとう:)

答えて

22
ClipData clip = ClipData.newPlainText(
      "text label", 
      "content to be copied"); 

ここにテキストラベルは、クリップ

などであるどのようなデータについて説明します。

ClipData clip = ClipData.newPlainText(
      "user Name", 
      user.getName()); 

私たちは、ドキュメントの記述「クリップデータのためのユーザー見えるラベルは、」開発者として、あなたが設定することができるものとして解釈されるべきであるように思え

clip.getDescription(); 
+3

ドキュメント内の「ユーザー」という用語は、実際にはアプリケーションのユーザーではなく開発者を意味しますか?私は、このラベルを知っているアプリケーションのユーザーのためのどんな価値も見ません... – hackjutsu

+6

ラベルは、開発者のためだけに、アプリケーションのユーザーのためではありません – Gaurav

+0

ニース!私は "User-visible"という記述に混乱しました...しかし、今は明らかです。 – hackjutsu

11

を使用することによって、これをretriveことができ、 Androidシステムがユーザーに表示するものではなく、ユーザー自身に表示します。

Androidソースコードを見ると、ClipDescription.getLabel()メソッドがAndroid 5.0より前に使用されていないようです。 5.0 RemoteInputでは、RemoteInputCompatJellybeanとcom.android.mail.compose.ComposeActivityはusing the methodと記載しています。

これらの使用法をすべて見てみると、これらのラベルは、ユーザーが見ることができないように設定されていますが、代わりにコードの別の場所でプログラムを識別するために使用されます。

AndroidのClipData.newPlainText()is usedを見ると、ほとんどの場合nullがラベルとして与えられ、ラベルは実際には何も使用されていないことが示唆されます。

一部の携帯電話メーカーや他のアプリ開発者がラベルを取得して、状況に応じてユーザーに表示することはもちろん可能です。しかし、一般的には、クリップのラベルは、あなた自身で見せた場合にのみ、あなたのアプリのユーザに表示されると想定するのが安全です。

関連する問題