2014-01-10 4 views
2

Я новичок в webview в android. Я разрабатываю приложение, в котором хочу отметить выделенный текст в webview.Выделите выделенный текст в webview в android

image from tab

Здесь я хочу, чтобы удалить правую часть меню и изменить текст Done меню и по нажатию на сделали я хочу, чтобы пометить текст с цветом (Выделите текст) в WebView.

У кого-нибудь есть идеи?

Пожалуйста, ответьте. Ожидание ценного ответа.

+0

Как вы выделяете несколько абзацев? В моем случае, когда я выделяю текст внутри одного и того же абзаца, отлично работает, но когда я пытаюсь выделить текст из разных абзацев, подсветка не работает должным образом. Он увеличивает размер абзаца, добавляя промежуток между выбранным текстом. – Shrikant

ответ

2

Я не знаю, как взять контроль над контекстной панелью выбора. Но вы можете помешать ему показать и заменить его своей собственной версией. Во-первых, создать класс, который расширяет HighlightWebView WebView, и включают в себя это переопределение:

@Override 
public android.view.ActionMode startActionMode(android.view.ActionMode.Callback callback) { 
    // this will start a new, custom Contextual Action Mode, in which you can control 
    // the menu options available. 
    highlightActivity.startActionMode(highlighActionModeCallback); 

    // this is to prevent the native text selection ActionMode 
    return null; 
} 

Вам нужно создать класс HighlightActionModeCallback, а также. Вот очень простой вариант класса, который реализует ActionMode.Callback:

public class HighlightActionModeCallBack implements ActionMode.Callback { 

    @Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

    @Override 
    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
     // TODO Auto-generated method stub 
     mode.getMenuInflater().inflate(R.menu.highlight_menu, menu); 
     return true; 
    } 

    @Override 
    public void onDestroyActionMode(ActionMode mode) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
     // TODO Auto-generated method stub 
     return false; 
    } 

} 

Вы также хотите, чтобы Google «режим контекстных действий» и/или «контекстную панель действий» для получения дополнительной информации.

+0

Спасибо, Майк. Я попробую это. Спасибо за ваш ответ. –

+0

Привет, Майк, его работая, но салфетки событий конфликтуют с этой функциональностью. У вас есть какое-то решение? –

+0

@mikejonesguy, пожалуйста, предложите мне какой-нибудь учебник, чтобы постоянно выделять текст в WebView после нажатия кнопки «CAB». –

Смежные вопросы