Thực ra, bạn không phải tự mình phát triển tính năng này. Bạn chỉ cần sử dụng EditText thay vì TextView, trong khi bạn thiết lập android: editable của EditText thành false. Mã của tôi là ở đây:
R.layout.edittext.xml
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:editable="false"
android:background="@null"
android:textColor="#FFFFFF"/>
ListItemCopyTextActivity.java
public class ListItemCopyTextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ListView lv = new ListView(this);
String[] values = new String[15];
for (int i = 0; i < 15; i++) {
values[i] = "ListItem NO." + i;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.edittext, values);
lv.setAdapter(adapter);
ll.addView(lv, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
setContentView(ll);
}
}
Bạn có thể chỉ dài vào mục, và chọn văn bản lựa chọn, sao chép, cắt , quá khứ, v.v.
Nguồn
2012-06-14 03:31:27
tại thời điểm tôi đăng ký trình đơn ngữ cảnh và sử dụng trình quản lý clipboard để sao chép toàn bộ văn bản của TextView. Nhưng có vẻ như có một cách mặc định để làm điều này. – Erdal
Thực ra, menu ngữ cảnh được điều chỉnh cho phù hợp. Bạn có thể tùy chỉnh nó khi rảnh rỗi. Bạn cũng có thể xem lớp AlertDialog. Nó không thường được sử dụng cho mục đích này, nhưng bạn có thể gọi nó với một cú nhấp chuột dài. Tuy nhiên, nếu tôi nhớ rõ, bạn có giới hạn tối đa 3 nút. – Sephy
Một điều nữa, tôi không biết nếu nó được khuyến khích để làm điều đó, nhưng bạn có thể thử để đưa listview của bạn trong một framelayout và thêm một cái nhìn/bố trí bên trong nhưng với một tầm nhìn đi, và biến tầm nhìn của nó để nhìn thấy khi một yếu tố danh sách của bạn được nhấp và cập nhật nội dung của danh sách đó? – Sephy