2010-11-30 45 views
3

我想弄清楚用戶選擇一個單詞的簡單方法,最好是長按TextView中的單詞。基本上,我有一個充滿文本的TextView,我希望用戶能夠長按單詞,然後顯示一個上下文菜單,以便我可以執行數據庫搜索?這可能嗎?我也可以切換到EditText,只要我可以使它看起來像一個TextView。合理?Android在TextView或EditView中選擇一個詞

謝謝。

回答

0

很簡單。

首先創建的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> 
+0

我不跟着你。我不想打給任何人。我想複製下面他們長時間按下的文本。 – 2010-11-30 20:15:44

相關問題