关于ListView中控件点击事件与Item点击事件冲突的问题
来源:互联网 发布:底火帽在淘宝叫什么 编辑:程序博客网 时间:2024/05/17 07:09
原因是button强制获取了item的焦点,只要设置button的focusable为false即可。
import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;public class Audition1 extends Activity { private ListView listView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_audition1); initComponents(); } private void initComponents() { listView = (ListView) findViewById(R.id.listView); listView.setAdapter(new MyAdapter(this)); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Toast.makeText(getApplicationContext(), "item", 300).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_audition1, menu); return true; } public final class ViewHolder { public TextView textView; public Button button; public ImageView imageView; } class MyAdapter extends BaseAdapter { private LayoutInflater mInflater; public MyAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { return 3; } @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) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.item, null); holder.imageView = (ImageView) convertView .findViewById(R.id.imageView); holder.textView = (TextView) convertView .findViewById(R.id.textViewId); holder.button = (Button) convertView.findViewById(R.id.button); holder.textView.setText("shit"); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder( Audition1.this); builder.setMessage("dialog"); builder.setTitle("title"); builder.create(); builder.show(); } }); convertView.setTag(holder); } else { convertView.getTag(); } return convertView; } }}
===================================================================================
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listView" android:layout_width="wrap_content" android:layout_height="fill_parent" android:padding="@dimen/padding_medium" tools:context=".Audition1" android:dividerHeight="5dp"/></RelativeLayout>
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"fill_parent"
android:layout_height=
"match_parent"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/textViewId"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/hello_world"
/>
<ImageView
android:id=
"@+id/imageView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_launcher"
android:contentDescription=
"@string/app_name"
/>
<Button
android:id=
"@+id/button"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"press"
android:focusable=
"false"
/>
</LinearLayout>
0 0
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- ListView中控件点击事件与Item点击事件冲突的问题
- listview或gridview中item的点击事件与控件点击事件冲突的解决
- 解决ListView中Item的子控件与Item点击事件冲突
- 解决ListView中Item的子控件(比如Button)与Item点击事件冲突
- 解决ListView中Item的子控件与Item点击事件冲突
- Android中解决listview的item点击事件和子控件点击事件的冲突
- ListView中item点事件和item中的控件点击事件冲突的简易解决方法
- Android ListView的Item点击事件和Item里控件点击事件冲突问题解决
- 解决Listview的item和里面控件点击事件冲突
- Listview的item和里面控件点击事件冲突
- ListView item点击事件和里面的控件冲突失效
- 解决Listview中Item中控件设置点击事件而Item点击事件失效问题
- android ListView 中点击事件与其他控件点击时间冲突问题与自动滚动
- 关于ListView触摸事件和点击Item事件冲突解决方法
- 关于ListView触摸事件和点击Item事件冲突解决方法
- JAVA设计模式之单例模式
- Linux 终端 Bash 常用快捷键介绍及经验
- Ubuntu系统Matlab桌面快捷方式
- 2017年2月10日
- 特殊字符总结
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- poj3070
- 初始SVN与GIT代码上传
- [杂项]关于github安装包打开失败的原因之一
- asp.net core mvc权限控制:权限控制介绍
- PAT B1043. 输出PATest(20)
- string 与char* char[]之间的转换
- Maven 修改本地存储库位置
- 0211