`

ListView 和Button的结合

 
阅读更多



 

public class Main extends Activity {
	ListView list;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		list = (ListView) findViewById(R.id.lv);
		
		MyAdapter adapter = new MyAdapter(this);
		list.setAdapter(adapter);
		list.setItemsCanFocus(false);
		list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
		list.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				ViewHolder holder = (ViewHolder) view.getTag();
				String string = holder.file_name.getText().toString();
				holder.download_btn.setOnClickListener(new OnClickListener() {
					public void onClick(View v) {
						Toast.makeText(Main.this, "123", 2000).show();
					}
				});
				Toast.makeText(Main.this, string, 2000).show();
			}
		});
	}
}

 

public class MyAdapter extends BaseAdapter {
	private LayoutInflater mInflater;
	private List<Map<String, Object>> mData;

	public MyAdapter(Context context) {
		mInflater = LayoutInflater.from(context);
		init();
	} // 初始化

	private void init() {
		mData = new ArrayList<Map<String, Object>>();

		Map<String, Object> map = new HashMap<String, Object>();
		map.put("file_name", "附件一");
		map.put("file_time", "2011/07/09");
		mData.add(map);

		map = new HashMap<String, Object>();
		map.put("file_name", "附件二");
		map.put("file_time", "2011/07/09");
		mData.add(map);

	}

	@Override
	public int getCount() {
		return mData.size();
	}

	@Override
	public Object getItem(int position) {
		return null;
	}

	@Override
	public long getItemId(int position) {
		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder holder = null;
		// convertView为null的时候初始化convertView。
		if (convertView == null) {
			holder = new ViewHolder();
			convertView = mInflater.inflate(R.layout.list, null);
			holder.file_name = (TextView) convertView
					.findViewById(R.id.file_name);
			holder.file_time = (TextView) convertView
					.findViewById(R.id.file_time);
			holder.download_btn = (Button) convertView
					.findViewById(R.id.download_btn);
			holder.download_btn.setFocusable(false);

			convertView.setTag(holder);
		} else {
			holder = (ViewHolder) convertView.getTag();
		}
		holder.file_name.setText(mData.get(position).get("file_name").toString());
		holder.file_time.setText(mData.get(position).get("file_time").toString());
		final String string = mData.get(position).get("file_name").toString();
		holder.download_btn.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				System.out.println(string);
			}
		});
		return convertView;
	}

	public final class ViewHolder {
		public TextView file_name;
		public TextView file_time;
		public Button download_btn;
	}
}

 
 

 

  • 大小: 19.1 KB
  • 大小: 6.9 KB
分享到:
评论

相关推荐

    ListView和Button的结合使用

    通过以上步骤,我们成功地将ListView和Button结合在一起,实现了点击ListView条目和Button时的不同操作。需要注意的是,当ListView中的条目复用时(即convertView不为null),我们应该确保每次`getView()`方法调用时...

    ListView和Button点击事件冲突处理

    3. **使用ItemClick和ItemLongClick事件**:如果Button的点击事件是作为ListView条目的一个特殊操作,可以考虑将它整合到ListView的ItemClickListener或ItemLongClickListener中。通过判断点击位置来确定是否执行...

    Android listview和button点击事件冲突问题解决方法

    本文将详细介绍如何解决Android listview和button点击事件冲突。 首先,我们要理解这个问题的根本原因。当在ListView的Item布局中包含一个Button时,ListView本身也有点击监听器,而Button也有自己的点击监听器。...

    ListView的基本使用带Button

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在显示数据集合时...通过结合Button或其他交互元素,ListView可以提供丰富的用户体验,实现各种复杂的业务逻辑。

    Listview中的Button实现点击事件

    在ListView中嵌入Button,可以创建丰富的交互式界面,例如QQ空间的说说评论和点赞功能。实现ListView中Button的点击事件,主要涉及到事件监听和数据绑定的概念。下面我们将详细探讨这两种常见的实现方式:接口回调和...

    ListView和BaseAdapter搭配Button点击事件获取不同Item

    它与BaseAdapter结合使用,可以实现数据的动态加载和界面的复用。在这个场景中,我们要讨论的重点是如何在ListView中的每个Item(即列表项)上添加Button,并处理这些Button的点击事件,以便根据点击的Button获取...

    自动隐藏和显示标题栏ListView

    综上所述,"自动隐藏和显示标题栏ListView"技术涉及到了手势识别、动画设计、布局管理和组件封装等多个方面,通过巧妙地结合这些技术,我们可以为用户提供更加沉浸式和流畅的交互体验。在实际开发中,需要根据项目的...

    ListView Button

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。...在ListClickTest这个示例项目中,可能就包含了这些技术的实现,可以进一步学习和研究,以加深对ListView与Button交互的理解。

    android SQlite、listView中加按钮的使用

    综上所述,这个“android SQlite、listView中加按钮的使用”的项目涵盖了Android开发中的重要知识点,包括SQLite数据库的管理和操作,ListView的自定义适配器及事件监听,以及sharedPreferences的使用。这些技术对于...

    Android 系统自带单选按钮的listView

    在本教程中,我们将探讨如何在Android系统中利用ListView结合单选按钮(RadioButton)来实现一个功能性的选择列表,以及如何设置默认选中项。 首先,我们需要了解ListView的基本用法。ListView是Android SDK中的一...

    Android listview例子, 自定义Adapter:含Button控件

    总之,Android中的ListView结合自定义Adapter和Button控件可以创建出丰富的用户界面,用户不仅可以查看列表数据,还能直接在列表项内进行交互。通过理解并实践这些概念,开发者能够更灵活地构建Android应用程序的UI...

    消息提示Toast 列表组件ListView 实例示范

    在Android应用开发中,消息提示和列表组件是两个非常重要的元素。它们帮助用户与应用程序进行交互,提供反馈信息,以及展示大量数据。...在实际开发中,还可以结合网络请求、数据库等,实现更丰富的功能。

    使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据

    简单说下这个demo的实现,点击一个button,弹出一个类似spinner的界面,包含一个edittext和listview,当在输入框中键入关键字时,下面的listview所显示的数据可以随之进行筛选,点击item,将所选值返回给button。...

    QSqlQueryModel模型在QML的ListView

    总结来说,通过结合QSqlQueryModel和QML的ListView,我们可以构建一个功能丰富的数据可视化界面,实现实时的数据库操作。这种方式充分利用了Qt的跨平台特性和QML的声明式编程,使得数据库操作与UI设计融为一体,提高...

    C#使用listView增删操作实例

    在C#编程中,ListView控件是一个非常常用的组件,它允许开发者在窗口或者对话框上显示数据列表。这个控件可以展示多列数据,...在实际开发中,应结合具体业务需求,灵活运用ListView的各种特性,以提供最佳的用户体验。

    自绘控件,button,listview,sliderbar

    这涉及到使用DrawBitmap函数绘制不同状态下的图片,并可能结合DrawText方法添加文本。同时,要处理WM_PAINT消息以确保控件的正确绘制,以及WM_MOUSEHOVER和WM_LBUTTONDOWN消息来检测用户的交互。 接下来,我们讨论...

    listview二级菜单

    ListView通常结合Adapter使用,Adapter是连接数据源和视图的桥梁。开发者需要创建一个继承自BaseAdapter的自定义Adapter,重写其中的方法如`getCount()`(返回数据项的数量)、`getItem()`(获取指定位置的数据项)...

    C# Winform使用ListView实现导航菜单

    通过以上步骤,我们就能在C# Winform应用中实现一个功能丰富的导航菜单,结合`ListView`、`Button`、`UserControl`和`ImageList`的优势,提供直观、易用的用户界面。这不仅增强了用户交互体验,也为软件开发带来了更...

    Android中ListView添加头部

    在Android应用开发中,ListView是一种常用的控件,用于展示大量数据列表。它的可滚动特性使得它在...在实际项目中,结合ListViewHeader文件中的示例代码,开发者可以更好地理解和掌握这一技术,提升应用的用户体验。

    带按键可点击的listview

    总结来说,"带按键可点击的listview"示例展示了如何在ListView中结合数据和操作,使每一项都有一个可点击的按键。这涉及到自定义Adapter、设置点击监听器以及优化ListView的性能。对于Android开发者来说,理解和掌握...

Global site tag (gtag.js) - Google Analytics