На самом деле, вам не нужно разрабатывать эту функцию самостоятельно. Вам просто нужно использовать EditText вместо TextView, пока вы установите для android: editable EditText значение false. Мой код здесь:
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);
}
}
Вы можете просто долго нажмите на элемент и выберите выберите текст, копировать, вырезать , прошлое и т. д.
на данный момент я регистрируюсь для контекстного меню и используя диспетчер буфера обмена, чтобы скопировать весь текст TextView. Но похоже, что это должно быть по умолчанию. – Erdal
На самом деле для этого адаптировано контекстное меню. Вы можете настроить его на досуге. Вы также можете посмотреть класс AlertDialog. Обычно это не используется для этой цели, но вы можете называть его длинным кликом. Однако, если я хорошо помню, вы ограничены 3 кнопками макс. – Sephy
Еще одна вещь, я не знаю, целесообразно ли это сделать, но вы можете попытаться поместить свой список в рамку и добавить еще один вид/макет внутри, но с отсутствующей видимостью и превратить его видимость в видимую, когда элемент вашего списка нажал и обновил его содержимое? – Sephy