package kr.co.incoad.SinsangApp;
import java.util.List;
import android.content.Context;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class RssListAdapterJjim extends ArrayAdapter<Item> {
private LayoutInflater mInflater;
private TextView title;
private TextView desc;
public RssListAdapterJjim(Context context, List<Item> objects) {
super(context, 0, objects);
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null) {
view = mInflater.inflate(R.layout.item_row, null);
}
Item item = this.getItem(position);
if (item != null) {
// 주의: 안드로이드 버그로 ListView 안에 클릭 가능한 객체(ex. Button, WebView 등)가 존재하면
// ListView 를 클릭했을때 호출되는 OnListItemClick 이 호출되지 않습니다.
// 그래서 WebView 의 focusable을 false 로 만들어 줘야 합니다.
// 더 주의해야 할 사항은 xml에서 설정해도 적용되지 않으므로 반드시 코드상에 한번더 명시해줘야 합니다.
String image = item.getImage().toString();
WebView webView = (WebView) view.findViewById(R.id.item_img);
webView.setFocusable(false);
webView.setClickable(false);
webView.getSettings().setJavaScriptEnabled(false);
if (webView != null)
webView.loadUrl("http://이미지경로");
String title = item.getTitle().toString();
this.title = (TextView) view.findViewById(R.id.item_title);
this.title.setText(Html.fromHtml(title));
String desc = item.getDesc().toString();
this.desc = (TextView) view.findViewById(R.id.item_desc);
this.desc.setText(Html.fromHtml(desc));
}
return view;
}
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/listviewbg"
android:padding="10px">
<WebView
android:id="@+id/item_img"
android:layout_width="80dip"
android:layout_height="60dip"
android:padding="10px"
android:layout_gravity="center_vertical|center_horizontal"
android:scrollbars="none"
android:clickable="false"
android:focusable="false" />
<LinearLayout
android:layout_toRightOf="@id/item_img"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip">
<TextView
android:id="@+id/item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="#000000"
android:lines="1" />
<TextView
android:id="@+id/item_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:textColor="#000000"
android:ellipsize="end" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
리스트뷰 안에 웹뷰가 있는 리스트를 구현하였습니다.
그런데 웹뷰부분을 클릭하면 이벤트가 먹질 않네요..
다른 부분을 클릭하면 정상적으로 작동하는데요.. 왜 웹뷰 부분만 클릭이 안될까요..
별의별 방법을 다 써봤는데요 안되네요.. ㅡㅡ;
웹뷰부분에는 이미지만 가져 오는데요.. 아 미치겠습니다. 아시는분 답변좀 부탁드려요..
xml과 코딩상에 setFocusable,setClickable 모두 false로 되어있습니다.




자답 2.2까지는 되는데요.. 2.3 진저브래드 부터안되는거 같네요..
2.2 에뮬에서는 잘 먹네요.. 쩝 머지머지..