ListView列表项中的按钮点击事件无效的问题 在列表项中加入按钮的话, 点击按钮时, 不会触发列表项点击事件, 也不会触发按钮点击事件. 直到这个活动结束的一刹那才会响应之前的点击事件.我也知道列表项中每个控件的touch事件是正常的,可以勉强用来代替点击事件,但终归不太爽...谁知道怎样让按钮点击事件生效? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 找出原因了, 原来 android:layout_height="wrap_content" 时, 点击按钮会无效 你说的android:layout_height="wrap_content"是ListView的,还是ListView中的button android:layout_height="wrap_content" 这个是怎么出错的呢。 是指ListView的<ListView android:id="@+id/listView1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 假如你的ListView的android:layout_height属性不设置为fill_parent,会出现一些bug,我也不知道为什么会这样,举个例子:当android:layout_height属性设置为wrap_content那么ListView的最后一根分割线不能显示,即使设置了android:footerDividersEnabled="true",也不能显示最后一根分割线。解决问题就好了,记住这个方法,下次可能用得着 1.在listview item的布局文件的根元素中,添加 android:descendantFocusability="blocksDescendants"如下<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:descendantFocusability="blocksDescendants" android:orientation="vertical" >、。2. 继承BaseAdapter实现一个getView方法, 参数下面代码: public class TicketListViewItemAdpater extends BaseAdapter { private LayoutInflater mInflater; public TicketListViewItemAdpater(Context context) { this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return incidentBeanList.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup arg2) { // TODO Auto-generated method stub ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.ticket_listview_item, null); holder.TextView_name = (TextView) convertView .findViewById(R.id.TextView_name); holder.TextView_location = (TextView) convertView .findViewById(R.id.TextView_location); holder.TextView_description = (TextView) convertView .findViewById(R.id.TextView_description); holder.Button_Close = (Button) convertView .findViewById(R.id.Button_Close); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.Button_Close.setTag(new Integer(position)); holder.TextView_name.setText(incidentBeanList.get(position).title); holder.TextView_description .setText(incidentBeanList.get(position).description); holder.TextView_location .setText(incidentBeanList.get(position).location); holder.Button_Close.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Integer tmp = (Integer) v.getTag(); IncidentBean ib = incidentBeanList.get(tmp.intValue()); Intent intent = new Intent(); intent.putExtra("location", ib.location); intent.setClass(TicketActivity.this, MapActivity.class); TicketActivity.this.startActivity(intent); Log.i("zoukeTest", "button" + tmp.intValue()); } }); return convertView; } } 清除其他应用通知栏信息 java.net.UnknownHostException: Host is unresolved异常 android 可以用在工控上吗 Android程序的自动更新功能 圖標拖動的問題 在一个继承自View的类中重写onKeyDown()方法无效? 学习Android必会的JAVA技术 服务器和客户端开发时出现的小问题 急求任意门翻墙软件 mediaplayer问题相关 播放过程自动触发onerror方法 望大神解答 大家是在什么情况下才把Activity分成不同的Task的? 在android中如何获取正在播放视频的帧数?
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical" >、。
2. 继承BaseAdapter实现一个getView方法, 参数下面代码:
public class TicketListViewItemAdpater extends BaseAdapter
{ private LayoutInflater mInflater; public TicketListViewItemAdpater(Context context)
{ this.mInflater = LayoutInflater.from(context);
} @Override
public int getCount()
{
// TODO Auto-generated method stub
return incidentBeanList.size();
} @Override
public Object getItem(int arg0)
{
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int arg0)
{
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup arg2)
{
// TODO Auto-generated method stub
ViewHolder holder = null;
if (convertView == null)
{
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.ticket_listview_item,
null);
holder.TextView_name = (TextView) convertView
.findViewById(R.id.TextView_name);
holder.TextView_location = (TextView) convertView
.findViewById(R.id.TextView_location);
holder.TextView_description = (TextView) convertView
.findViewById(R.id.TextView_description);
holder.Button_Close = (Button) convertView
.findViewById(R.id.Button_Close);
convertView.setTag(holder);
} else
{
holder = (ViewHolder) convertView.getTag();
} holder.Button_Close.setTag(new Integer(position));
holder.TextView_name.setText(incidentBeanList.get(position).title);
holder.TextView_description
.setText(incidentBeanList.get(position).description);
holder.TextView_location
.setText(incidentBeanList.get(position).location); holder.Button_Close.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Integer tmp = (Integer) v.getTag();
IncidentBean ib = incidentBeanList.get(tmp.intValue());
Intent intent = new Intent();
intent.putExtra("location", ib.location);
intent.setClass(TicketActivity.this, MapActivity.class);
TicketActivity.this.startActivity(intent);
Log.i("zoukeTest", "button" + tmp.intValue());
}
});
return convertView;
}
}