2016-02-27 182 views
1

我已經使用android剪貼板管理器來複制和粘貼文本。像whatsapp,我想從列表中複製多個文本並粘貼。 我能做到這樣,Android複製並粘貼多個文本

StringBuilder textMessage = new StringBuilder(); 
for(messsage) { 
textmessage.append(message); 
textmessage.append("\n"); 
} 
ClipData clip = ClipData.newPlainText("simple text", textMessage.toString()); 
clipboard.setPrimaryClip(clip); 

取而代之的是多textmessages追加爲一,我能textmessages的陣列存儲到一個剪輯對象和使用數組索引retrive的。

+0

只是做字符串的ArrayList ......我不明白的問題 –

+0

ClipData.newPlainText不採取字符串數組列表作爲參數 – rocks

回答

2

我想,你可以添加多個ClipData.ItemClipData。因此,而不是使用靜態方法newPlainText,使用

ClipData(ClipDescription description, ClipData.Item item) 

或可用任何其它構造創建新ClipData

我用的ClipDatagetItemCount方法來證明它確實是值的索引列表,讓你絕對可以用getItemAt從任何位置獲取任何ClipData.Item,提供的位置是不是導致你OutOfBoundException。下面的代碼是非常新手,但會服務於我相信的演示的目的。讓我知道你是否需要任何幫助。

public class MainActivity extends AppCompatActivity { 
    ClipboardManager clipboard; 
    static int var = 0; 
    ClipData clipData; 
    TextView tvClip; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     tvClip = (TextView) findViewById(R.id.tv_add); 

     clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); 

     Button btnClip = (Button) findViewById(R.id.btn_add); 
     btnClip.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ClipData.Item item = new ClipData.Item("var" + var); 
       if (clipData == null) { 
        clipData = new ClipData(new ClipDescription("your_clip_description", new String[]{ClipDescription.MIMETYPE_TEXT_PLAIN}), item); 
        clipboard.setPrimaryClip(clipData); 
       } 
       clipData.addItem(item); 
      } 
     }); 

     Button showClip = (Button) findViewById(R.id.btn_show); 
     showClip.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (clipData != null) 
        tvClip.setText("count = " + clipData.getItemCount()); 
      } 
     }); 
    } 
}