Android: Listview, где каждый элемент является веб-просмотром - PullRequest
2 голосов
/ 30 июня 2010

У меня есть список с пользовательским адаптером для каждого элемента списка.Если у меня есть какой-то текстовый вид, то все работает нормально.Но каждый элемент должен быть неким html, и поэтому мне нужно, чтобы каждый элемент был веб-просмотром.Проблема в том, что веб-просмотр украл мой клик, и поэтому я больше не могу выбрать элемент из списка.

Так вот:

    this.itemAdapter = new ItemAdapter(this, R.layout.webview, itemArrayList);
    ListView lv1 = (ListView) findViewById(R.id.ListView01);
    lv1.setOnItemClickListener( new ItemSelected());
    lv1.setAdapter(this.itemAdapter);

public class ItemSelected implements OnItemClickListener 
{
    @Override
    public void onItemClick(AdapterView av, View v, int item, long id) 
    {
        Intent showTextIntent = new Intent(showItems, ShowItemDetails.class); 
        showTextIntent.putExtra("itemID", singleItems.get(item).getItemID());
        startActivity(showTextIntent);
    }
}

клик мертв.У меня нет ссылки в веб-представлении или мне нужно перемещаться. Я использую ее только для того, чтобы иметь хороший форматированный текст (fromHtml для textview не так хорош).Есть шанс?

Ответы [ 4 ]

2 голосов
/ 30 июня 2010

Попробуйте сделать setClickable(false) в вашем WebView или используйте android:clickable="false" в XML-макете.

1 голос
/ 14 ноября 2013

Я нашел два способа добиться этого:

1: настройка прослушивателя касания в WebView для перенаправления события касания

webView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            // Do your thing
        }
        return false;
    }
});

2: Избегать всех возможных событий касания от запуска

webView.setClickable(false);
webView.setLongClickable(false);
webView.setFocusable(false);
webView.setFocusableInTouchMode(false);
0 голосов
/ 10 сентября 2013

Настройка атрибутов веб-просмотров, активируемых кликом и фокусировкой на false, сработала для меняПри этом OnItemClickListener в ListView снова запускается.

0 голосов
/ 22 июля 2011

Взгляните на этот пост - Android WebView внутри ListView onclick: события события .Настройка прослушивателя onTouch может работать, а может и не работать, поскольку я думаю, что он будет регистрировать только события onTouch в самом WebView.Второй ответ, ссылающийся на форум, на котором было предложено, что вы программно установилиClickable и setFocusable в false, кажется, работает лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...