2011-12-22 28 views
6

Tôi muốn chọn một số văn bản bên trong EditText là phần tử con của một ListView. Văn bản đã chọn phải được đặt trên khay nhớ tạm. Tôi không thể tìm thấy bất kỳ ví dụ nào về vấn đề này. Làm thế nào tôi nên đi về điều này? selectionStart and selectionEnd không làm việc này. Cảm ơn.Chọn văn bản để sao chép Android EditText

+0

xin lỗi, không có nhiều thời gian để viết cần thiết cho vấn đề của bạn, ít phút SO tìm kiếm đã cho tôi này liên kết, điều này có thể giúp bạn. Nếu bạn đã thử điều này tôi xin lỗi.http: //stackoverflow.com/questions/2679948/focusable-edittext-inside-listview – kosa

+1

Tôi đã giải thích trong bình luận không có thời gian. Đừng quá dictating. Vấn đề ở đây là của bạn và cộng đồng đang cố gắng giúp bạn. Đừng nghĩ rằng cộng đồng sẽ viết mọi thứ cho bạn. Nếu liên kết không hữu ích, bạn có thể bỏ qua. Mỗi câu trả lời của bạn là chính tả và điều đó không tốt. – kosa

+0

Xin chào, tôi không ra lệnh gì cả. Tôi đang cố gắng ngăn chặn cộng đồng khỏi những câu trả lời rác rưởi. Đừng hiểu lầm tôi! –

Trả lời

0

EditText đã cung cấp chức năng này trên báo chí dài .... có nghĩa là nhấn một liên lạc dài trên editText nó bật lên với menu ngữ cảnh yêu cầu chọn tất cả, chọn văn bản, sao chép tất cả.

+0

Hãy thử làm điều đó trong một listview và sau đó chúng ta có thể thảo luận về nó sau này. –

+0

xin lỗi, đó là lỗi của tôi mà không thấy điều tương tự trong ListView. Bây giờ tôi cũng tự hỏi làm thế nào để làm điều đó. – Kri

1

Sử dụng mã này vào sự kiện danh sách lựa chọn

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(txtEdit.getText().toString());

+0

bạn có thể thử điều này, nó sẽ không hoạt động. Tôi đã thử mọi cách có thể ra khỏi đó. Nhưng nó dường như không hoạt động. Đã xảy ra sự cố với tiêu điểm danh sách trong Android. Nó luôn luôn gây nhầm lẫn giữa các yếu tố con và các yếu tố cha mẹ. –

0

Bạn có thể mở một hộp thoại về sự kiện EditText bấm dài inlistView bộ chuyển đổi tùy chỉnh và hiển thị hai tùy chọn sao chép và dán vào họ

bạn có thể sao chép văn bản sử dụng theo chương trình

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

         clipboard.setText("Text to copy"); 

và nhận văn bản sử dụng

System.out.println(clipboard.getText()); 
+0

bạn không hiểu vấn đề. Listview có vấn đề với các phần tử con. –

2

đây là giải pháp khả thi. trong phương pháp getView của listview biểu diễn các hoạt động sau đây:

enter code here: 

public View getView(final int position, View convertView, ViewGroup parent) { 
      // A ViewHolder keeps references to children views to avoid unneccessary calls 
      // to findViewById() on each row. 
      final ViewHolder holder; 


      if (convertView == null) { 
       convertView = mInflater.inflate(R.layout.main, null); 

       // Creates a ViewHolder and store references to the two children views 
       // we want to bind data to. 
       holder = new ViewHolder(); 


       holder.subText = (TextView) convertView.findViewById(R.id.subTxt);  

       convertView.setTag(holder); 
      } else { 
       // Get the ViewHolder back to get fast access to the TextView 
       // and the ImageView. 
       holder = (ViewHolder) convertView.getTag(); 
      } 

      //TEXT BOX position is 0 then 
      if(position == 0) { 

       ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(txtEdit.getText().toString()); 
      } 
      return convertView; 
     } 
+0

điều này sẽ không hoạt động .. editText sẽ không tập trung vào điều này. –

0
InputConnection ic = getCurrentInputConnection(); 
ExtractedText extracted = ic.getExtractedText(
        new ExtractedTextRequest(), 0); 
      /*If selection start and end are not equal then selected text 
      * needs to be deleted and updated to core*/ 
      if (extracted!= null && extracted.selectionStart != extracted.selectionEnd) { 
} 

Sử dụng api do ExtractedText

Các vấn đề liên quan