我在listView 中嵌入了button 并实现了onclick事件.程序运行的时候突然发现listView 中的onListItemClick()事件被屏蔽了,哪位大虾能解决下啊?
请发源代码,谢谢,
请发源代码,谢谢,
解决方案 »
- MFC中 Init失败
- 关于android客户端与服务器端交互的问题
- 手把手教你搭建开发环境 并附sdk离线包,及其所有资源,求置顶
- 如何实现类似UC浏览器的前进后退按钮的图片切换功能
- 怎么根据经度纬度取得时区
- ExpandableListView的长按事件
- android textView 中加载<img>标签中的网络图片,ImageGetter中 getDrawable(Str)str为null
- android 布局的问题
- 如何创建一个service不被360和腾讯的安全软件杀死?
- 原来已经运行了,更新之后突然报错了,是为什么啊
- 安卓4.0webview内搜索 不高亮问题。
- 为了测试 protected level : dangerous
{
LayoutInflater inflater;
Context context;
public Task_list_single_item_adapter(Context context){
this.context=context;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount()
{
return 2;
}
@Override
public Object getItem(int position)
{
return null;
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
final Holder holder;
if(convertView!=null)
{
holder=(Holder) convertView.getTag();
}else {
holder=new Holder();
convertView=inflater.inflate(R.layout.download_management_item, null);
holder.pause=(Button) convertView.findViewById(R.id.dmi_ib1_pause);
holder.trys=(Button) convertView.findViewById(R.id.dmi_ib2_recover);
holder.install=(Button) convertView.findViewById(R.id.dmi_ib3_install);
convertView.setTag(holder);
}
OnClickListener listener=new OnClickListener(){
@Override
public void onClick(View v)
{
if(v==holder.pause){
Toast.makeText(context, "pause", Toast.LENGTH_SHORT).show();
holder.pause.setVisibility(View.GONE);
holder.trys.setVisibility(View.VISIBLE);
holder.install.setVisibility(View.GONE);
}
if(v==holder.trys){
Toast.makeText(context, "try", Toast.LENGTH_SHORT).show();
holder.pause.setVisibility(View.VISIBLE);
holder.trys.setVisibility(View.GONE);
holder.install.setVisibility(View.GONE);
}
if(v==holder.install)
Toast.makeText(context, "install", Toast.LENGTH_SHORT).show();
}
};
holder.pause.setOnClickListener(listener);
holder.trys.setOnClickListener(listener);
holder.install.setOnClickListener(listener);
return convertView;
}
class Holder{
public Button pause;
public Button trys;
public Button install;
}
} 另外提醒,如果在listview中添加了button而不能点击listview时,可以在layout布局中去掉button的焦点就可以了,这样listview中的linearlayout和button都可以点击了,最重要的是在linearLayout中加上如下代码
android:descendantFocusability="blocksDescendants" 参考如下代码:注意红色部分<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<ImageView
android:id="@+id/img"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="5dp"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="205dp"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="16dp"
android:layout_marginTop="10dip"/>
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="10dp"/>
</LinearLayout>
<Button
android:id="@+id/btnDetails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center|right"
android:background="@drawable/list_button"
android:layout_marginRight="2dip" />
</LinearLayout>