`
梦想家dream
  • 浏览: 64186 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Android BaseAdapter如何获得每一项并添加按钮事件

阅读更多
package com.hangcheng;

import java.io.File;
import java.util.ArrayList;

import com.example.bdcustomer_demo.R;
import com.hangcheng.entity.FileBin;
import com.hangcheng.helper.MySQLiteHelper;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class DbActivity extends Activity {

	private EditText editText_type;
	private Button btn_search;

	private TextView textView_id;
	private TextView textView_type;
	private TextView textView_path;

	private Button btn_delete;
	private Button btn_play;

	private String file_id = "";
	private String file_type = "";
	private String file_path = "";

	private ListView listView_db;
	ArrayList data;
	private Cursor cursor;

	private FileBin fileBin;

	private String fileid;
	private String type;
	private String path;

	BaseAdapter adapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.dbfile);

		data = new ArrayList();
		initView();

		cursor = new MySQLiteHelper(DbActivity.this, "file.db", null, 1)
				.querydataFromdb(file_id, file_type, file_path);
		cursor.moveToFirst();

		while (cursor.moveToNext()) {
			android.util.Log.e(
					"tag",
					cursor.getString(cursor.getColumnIndex("_id"))
							+ cursor.getString(cursor.getColumnIndex("type"))
							+ cursor.getString(cursor
									.getColumnIndex("filepath")));
		}

		data = new MySQLiteHelper(DbActivity.this, "file.db", null, 1)
				.getfileData();
		android.util.Log.e("MESSAGE", data.size() + "");

		adapter = new BaseAdapter() {

			@Override
			public View getView(final int position, View convertView,
					ViewGroup parent) {

				if (convertView == null) {
					convertView = LayoutInflater.from(DbActivity.this).inflate(
							R.layout.list_view_filedb_items, null);

				}

				FileBin filebin = (FileBin) data.get(position);
				Log.e("MESSAGE", filebin.getId());
				Log.e("MESSAGE", filebin.getType());
				Log.e("MESSAGE", filebin.getFilepath());

				textView_id = (TextView) convertView
						.findViewById(R.id.textViewdb_id);
				textView_type = (TextView) convertView
						.findViewById(R.id.textViewdb_type);
				textView_path = (TextView) convertView
						.findViewById(R.id.textViewdb_path);

				btn_delete = (Button) convertView.findViewById(R.id.btn_delete);
				btn_play = (Button) convertView.findViewById(R.id.btn_play);

				textView_id.setText(filebin.getId());
				textView_type.setText(filebin.getType());
				textView_path.setText(filebin.getFilepath());

				final int id = position;

				btn_play.setOnClickListener(new View.OnClickListener() {

					@Override
					public void onClick(View v) {

						Log.e("HAHAHAHHAHA", "进来了");
						Log.e("HAHAHAHHAHA", "当前点击的位置是:" + position + "");
						Log.e("HAHAHAHHAHA",
								((FileBin) data.get(position)).getType());
						Log.e("HAHAHAHHAHA",
								((FileBin) data.get(position)).getFilepath());
						type = ((FileBin) data.get(position)).getType();
						path = ((FileBin) data.get(position)).getFilepath();
						if (type.equals("jpg") || type.equals("png")
								|| type.equals("jpeg")) {
							Intent intent = new Intent(getBaseContext(),
									PictureActivity.class);
							intent.putExtra("picpath", path);
							startActivity(intent);

						}
						if (type.equals("mp4") || type.equals("wav")
								|| type.equals("avi") || type.equals("mp3")) {
							Log.e("HAHAHAHAHHA", "进入播放");
							Intent intent = new Intent(DbActivity.this,
									VideoActivity.class);
							intent.putExtra("videopath", path);
							startActivity(intent);

						}
						if (type.equals("gif")) {
							Intent intent = new Intent(getBaseContext(),
									GifViewActivity.class);
							intent.putExtra("gifpath", path);
							startActivity(intent);
						}

					}
				});

				btn_delete.setOnClickListener(new View.OnClickListener() {

					@Override
					public void onClick(View v) {
						fileid = ((FileBin) data.get(position)).getId();
						MySQLiteHelper helper = new MySQLiteHelper(
								getBaseContext(), "file.db", null, 1);

						helper.deletedataFromdb(Integer.parseInt(fileid));

						data = new MySQLiteHelper(DbActivity.this, "file.db",
								null, 1).getfileData();

						listView_db.setAdapter(adapter);
						listView_db.invalidate();
						adapter.notifyDataSetChanged();

					}
				});

				return convertView;
			}

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

			@Override
			public Object getItem(int arg0) {
				fileBin = (FileBin) data.get(arg0);
				fileid = fileBin.getId();
				type = fileBin.getType();
				path = fileBin.getFilepath();

				return data.get(arg0);
			}

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

		listView_db.setAdapter(adapter);

		btn_search.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				file_type = editText_type.getText().toString();

				if (file_type.equals("")) {
					data = new MySQLiteHelper(DbActivity.this, "file.db", null,
							1).getfileData();
				} else {

					data = new MySQLiteHelper(DbActivity.this, "file.db", null,
							1).getfilebyTypeData(file_type);
				}

				cursor.moveToFirst();
				listView_db.setAdapter(new BaseAdapter() {

					@Override
					public View getView(final int position, View convertView,
							ViewGroup parent) {

						if (convertView == null) {
							convertView = LayoutInflater.from(DbActivity.this)
									.inflate(R.layout.list_view_filedb_items,
											null);

						}

						FileBin filebin = (FileBin) data.get(position);
						Log.e("MESSAGE", filebin.getId());
						Log.e("MESSAGE", filebin.getType());
						Log.e("MESSAGE", filebin.getFilepath());

						textView_id = (TextView) convertView
								.findViewById(R.id.textViewdb_id);
						textView_type = (TextView) convertView
								.findViewById(R.id.textViewdb_type);
						textView_path = (TextView) convertView
								.findViewById(R.id.textViewdb_path);

						btn_delete = (Button) convertView
								.findViewById(R.id.btn_delete);
						btn_play = (Button) convertView
								.findViewById(R.id.btn_play);

						textView_id.setText(filebin.getId());
						textView_type.setText(filebin.getType());
						textView_path.setText(filebin.getFilepath());

						type = filebin.getType();
						path = filebin.getFilepath();

						btn_play.setOnClickListener(new View.OnClickListener() {

							@Override
							public void onClick(View v) {

								Log.e("HAHAHAHHAHA", "进来了");
								Log.e("HAHAHAHHAHA", "当前点击的位置是:" + position
										+ "");
								Log.e("HAHAHAHHAHA", ((FileBin) data
										.get(position)).getType());
								Log.e("HAHAHAHHAHA", ((FileBin) data
										.get(position)).getFilepath());
								type = ((FileBin) data.get(position)).getType();
								path = ((FileBin) data.get(position))
										.getFilepath();
								if (type.equals("jpg") || type.equals("png")
										|| type.equals("jpeg")) {
									Intent intent = new Intent(
											getBaseContext(),
											PictureActivity.class);
									intent.putExtra("picpath", path);
									startActivity(intent);

								}
								if (type.equals("mp4") || type.equals("wav")
										|| type.equals("avi")
										|| type.equals("mp3")) {
									Log.e("HAHAHAHAHHA", "进入播放");
									Intent intent = new Intent(DbActivity.this,
											VideoActivity.class);
									intent.putExtra("videopath", path);
									startActivity(intent);

								}
								if (type.equals("gif")) {
									Intent intent = new Intent(
											getBaseContext(),
											GifViewActivity.class);
									intent.putExtra("gifpath", path);
									startActivity(intent);
								}

							}
						});

						btn_delete
								.setOnClickListener(new View.OnClickListener() {

									@Override
									public void onClick(View v) {
										fileid = ((FileBin) data.get(position))
												.getId();
										MySQLiteHelper helper = new MySQLiteHelper(
												getBaseContext(), "file.db",
												null, 1);

										helper.deletedataFromdb(Integer
												.parseInt(fileid));

										data = new MySQLiteHelper(
												DbActivity.this, "file.db",
												null, 1).getfileData();

										listView_db.setAdapter(adapter);
										listView_db.invalidate();
										adapter.notifyDataSetChanged();

									}
								});

						return convertView;
					}

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

					@Override
					public Object getItem(int arg0) {
						return data.get(arg0);
					}

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

			}

		});

	}

	private void initView() {
		editText_type = (EditText) findViewById(R.id.file_type);
		btn_search = (Button) findViewById(R.id.btn_search);
		listView_db = (ListView) findViewById(R.id.listview_db);

	}

}
0
5
分享到:
评论

相关推荐

    android SimpleAdapter 中添加按钮响应事件

    要在`SimpleAdapter` 的列表项中添加按钮,我们需要自定义一个布局文件(如 `list_item.xml`),并在其中包含一个或多个按钮组件。例如: ```xml <LinearLayout xmlns:android=...

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

    在这个场景中,我们要讨论的重点是如何在ListView中的每个Item(即列表项)上添加Button,并处理这些Button的点击事件,以便根据点击的Button获取对应的Item信息。 首先,理解ListView的工作原理至关重要。ListView...

    listview添加按钮

    1. **内联按钮**:可以直接在ListView的item布局文件中添加一个Button元素,这样每个列表项都有一个按钮。不过,这种情况下,每个按钮的点击事件都需要单独处理,确保不会对其他列表项产生影响。 2. **Footer View*...

    Android ListView添加Button及其事件

    这个Adapter应该继承自`BaseAdapter`,并重写`getView()`方法,该方法负责为ListView的每一项生成视图。在这个方法中,我们将实例化上面创建的布局,并设置Button的点击事件: ```java public class MyAdapter ...

    Android之ListView+BaseAdapter左右按键切换

    综上所述,这个项目涵盖了Android开发中关于ListView、BaseAdapter以及键盘事件处理的核心知识,是提升Android UI交互体验的一个实例。通过这个项目的学习,开发者能够更好地理解和掌握Android中数据和视图之间的...

    基于BaseAdapter实现仿IOS侧滑菜单

    本文将详细讲解如何利用BaseAdapter来创建一个仿iOS风格的侧滑菜单,包括菜单项的动态设置、菜单显示隐藏、点击事件处理等核心知识点。 **一、BaseAdapter简介** BaseAdapter是Android系统提供的一个抽象适配器类,...

    Android的list按钮事件

    它的每个项(item)通常会包含多个组件,如文本、图片或者按钮。当我们需要在ListView的item中的按钮触发特定事件时,就需要深入了解如何处理按钮点击事件。这篇内容将深入探讨Android的ListView与Button的交互。 ...

    android SQlite、listView中加按钮的使用

    1. 自定义Adapter:你需要继承BaseAdapter或者ArrayAdapter,并重写其中的方法,如getView(),在这个方法中你可以创建并设置ListView每一项的布局,包括按钮。 2. 设置按钮事件:在getView()方法中,找到Button组件...

    带按钮listview,添加监听

    为了增强用户体验和交互性,我们常常会在ListView的每一项(Item)中添加按钮。这样,用户可以通过点击按钮来执行特定的操作,如查看详情、删除条目等。本教程将详细介绍如何在ListView中添加按钮并实现监听事件。 ...

    在listview中添加按钮,并监听相应事件,可以加上自己的方法.zip

    总结:在Android中,通过在ListView的每一项中添加按钮并监听事件,我们可以实现更丰富的用户交互。这个过程涉及到创建布局文件、自定义Adapter、设置监听器等步骤。记住,优化性能也是关键,合理使用convertView能...

    listview添加图片按钮 及按钮跟ListView双监听

    在实际应用中,我们经常需要对ListView进行自定义,比如在每个列表项中添加图片和按钮,以增加交互性和功能多样性。本文将深入探讨如何在ListView中添加图片和按钮,并实现它们以及ListView的双监听,以便按钮点击时...

    android树,带图标、文字、按钮例子

    在Android开发中,构建用户界面是一项关键任务,而“android树,带图标、文字、按钮例子”是一个典型的UI设计需求,通常用于展示层次结构的数据。在这个案例中,开发者使用了ListView和BaseAdapter来创建一个带有...

    android studio实现listview的增加,左滑删除

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的列表数据。在本文中,我们将深入探讨如何在Android Studio中实现ListView的动态增加以及左滑删除功能,这将帮助你构建更加用户友好的应用程序。 首先...

    android 带有按钮相应的listview

    总结起来,"android 带有按钮相应的listview"是Android开发中一种增强用户交互的方式,它结合了ListView的展示功能和Button的触发事件能力。通过自定义布局、适配器和事件监听,我们可以创建出具有动态响应的列表,...

    Android编程实现ListView中item部分区域添加点击事件功能

    Android编程实现ListView中item部分区域添加点击事件功能是一项非常重要的技术,涉及Android ListView相关适配器及事件响应操作技巧。下面将详细介绍这项技术的实现方法。 首先,需要了解ListView的基本概念。...

    android ListView 动态添加删除

    动态添加和删除ListView中的Item是一项常见的功能,尤其在构建需要用户交互的应用时。本文将深入探讨如何实现这个需求,以及涉及到的关键知识点。 首先,我们需要理解ListView的工作原理。ListView通过Adapter与...

    BaseAdapter的一个Demo

    4. `getView(int position, View convertView, ViewGroup parent)`:这是最重要的方法,它负责创建或复用ListView的一项视图。`convertView`是可重用的视图,如果非空,我们可以复用它以提高性能。`position`是当前...

    android适应横竖屏登录模块toolsbar重写BaseAdapter.zip

    在Android开发中,横竖屏适配是一项重要的工作,它涉及到用户界面在不同屏幕方向下的显示效果。本项目"android适应横竖屏登录模块toolsbar重写BaseAdapter.zip"主要展示了如何实现一个登录界面,该界面能够根据设备...

    android gridview添加删除.zip

    这个“android gridview添加删除.zip”文件很可能包含了一个示例项目,教你如何在GridView中实现元素的添加和删除功能。让我们详细探讨一下GridView以及如何在其中进行这些操作。 GridView是一个二维的列表视图,它...

    android事件分发机制

    3. **绑定点击事件**:在`getView()`方法内,通过`findViewById()`找到每个列表项中的按钮,并使用`setOnClickListener()`为其设置监听器。这里可以使用匿名内部类来实现,或者创建单独的监听器类以保持代码结构清晰...

Global site tag (gtag.js) - Google Analytics