3
我想弄清楚用戶選擇一個單詞的簡單方法,最好是長按TextView中的單詞。基本上,我有一個充滿文本的TextView,我希望用戶能夠長按單詞,然後顯示一個上下文菜單,以便我可以執行數據庫搜索?這可能嗎?我也可以切換到EditText,只要我可以使它看起來像一個TextView。合理?Android在TextView或EditView中選擇一個詞
謝謝。
我想弄清楚用戶選擇一個單詞的簡單方法,最好是長按TextView中的單詞。基本上,我有一個充滿文本的TextView,我希望用戶能夠長按單詞,然後顯示一個上下文菜單,以便我可以執行數據庫搜索?這可能嗎?我也可以切換到EditText,只要我可以使它看起來像一個TextView。合理?Android在TextView或EditView中選擇一個詞
謝謝。
很簡單。
首先創建的TextView和registerForContextMenu():
private AdapterContextMenuInfo info;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView text = (TextView) findViewById(R.id.txtbtn);
text.setText("Click Me!");
registerForContextMenu(text);
}
然後建立自己的文本菜單:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
info = (AdapterView.AdapterContextMenuInfo)menuInfo;
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.call:
String phone="555-555-555";
String toDial="tel:"+phone.toString();
Uri uri = Uri.parse(toDial);
Intent it = new Intent(Intent.ACTION_DIAL, uri);
startActivity(it);
return true;
default:
return super.onContextItemSelected(item);
}
}
context_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/call"
android:title="CALL" />
</menu>
我不跟着你。我不想打給任何人。我想複製下面他們長時間按下的文本。 – 2010-11-30 20:15:44