android listview长按选择部分文字
我有一个列表视图,其中每个项目都是文本视图。 我想启用长按行为来选择部分文本,然后能够使用“文本选择”上下文操作栏“全部选择”、“复制”。我研究并尝试了各种解决方案。他们中没有一个对我的处境有用 我也有一个单选弹出菜单处理 谁能想出一个解决办法 这是我的密码android listview长按选择部分文字,android,listview,android-actionbar,Android,Listview,Android Actionbar,我有一个列表视图,其中每个项目都是文本视图。 我想启用长按行为来选择部分文本,然后能够使用“文本选择”上下文操作栏“全部选择”、“复制”。我研究并尝试了各种解决方案。他们中没有一个对我的处境有用 我也有一个单选弹出菜单处理 谁能想出一个解决办法 这是我的密码 public class MainActivity4 extends Activity { List<String> stringList; ListView listView; ArrayAdapter<S
public class MainActivity4 extends Activity
{
List<String> stringList;
ListView listView;
ArrayAdapter<String> arrayAdapter;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView1);
stringList = new ArrayList<String>();
for (int i = 1; i < 21; i++) {
stringList.add("verse --" + i + " -- The Lord is my shepherd. I shall not want.");
}
registerForContextMenu(listView);
arrayAdapter = new ArrayAdapter<String>(this, R.layout.text_vew, stringList);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
view.setSelected(true);
//Creating the instance of PopupMenu
PopupMenu popup = new PopupMenu(MainActivity4.this, view);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
{
public boolean onMenuItemClick(MenuItem item)
{
Toast.makeText(MainActivity4.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
//able to select part of list text. Example "shepherd".
// Then show Context Action Bar (CAB) that highlights selected text (example "shepherd") shows "Select All" "Copy" on the CAB
}
}
公共类MainActivity4扩展活动
{
列表列表;
列表视图列表视图;
ArrayAdapter ArrayAdapter;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.listView1);
stringList=新的ArrayList();
对于(int i=1;i<21;i++){
加上(“经文--“+i+”--主是我的牧人,我不会缺少的。”);
}
registerForContextMenu(列表视图);
arrayAdapter=新的arrayAdapter(this,R.layout.text\u vew,stringList);
setAdapter(arrayAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
view.setSelected(true);
//创建PopupMenu的实例
PopupMenu popup=新建PopupMenu(MainActivity4.this,视图);
//使用xml文件打开弹出窗口
充气(R.menu.popup\u菜单,popup.getMenu());
//向OnMenuItemClickListener注册弹出窗口
setOnMenuItemClickListener(新的PopupMenu.OnMenuItemClickListener()
{
公共布尔onMenuItemClick(菜单项)
{
Toast.makeText(MainActivity4.this),您单击:“+item.getTitle(),Toast.LENGTH\u SHORT.show();
返回true;
}
});
popup.show();
}
});
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单,视图v,ContextMenu.ContextMenuInfo菜单信息){
//能够选择列表文本的一部分。例如“shepherd”。
//然后显示高亮显示选定文本的上下文操作栏(CAB)(例如“shepherd”)在CAB上显示“全选”“复制”
}
}
acticity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/rl"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:clickable="true"
android:descendantFocusability="blocksDescendants"/>
</RelativeLayout>
popup_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/bookmark"
android:title="bookmark"/>
<item
android:id="@+id/copyVerseToClipboard"
android:title="copy verse to clipboard"/>
<item
android:id="@+id/share"
android:title="share"/>
<item
android:id="@+id/cancel"
android:title="cancel"/>
</menu>
text_view.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text_view"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:minHeight="15dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="20sp"
>
</TextView>