`

自定义dialog 含listview(二)

 
阅读更多

弹出一个半透明的listview dialog:

public class MySingleSelDialog  extends Dialog{
   private ArrayList<Restaurant> restaurants;
   private String title;
   private Context context;
   private ListView lv_list;
   private selRestaurantApdater apdater;
	TextView tv_title;
	Button btn_cancel;
	public MySingleSelDialog(Context context,ArrayList<Restaurant> restaurants,String title) {
		super(context);
		this.context = context;
		this.restaurants = restaurants;
		this.title = title;
	}
	public void setTitle(String title){
		this.title = title;
		tv_title.setText(title);
	}
	/* (non-Javadoc)
	 * @see android.app.Dialog#onCreate(android.os.Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.single_sel_dialog);
		lv_list = (ListView) findViewById(R.id.lv_list);
		tv_title = (TextView) findViewById(R.id.tv_title);
		btn_cancel = (Button) findViewById(R.id.btn_cancel);
		getWindow().setBackgroundDrawableResource(android.R.color.transparent);
		btn_cancel.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				dismiss();
			}
		});
		apdater = new selRestaurantApdater(getContext(), restaurants);
		lv_list.setAdapter(apdater);
		lv_list.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				Toast.makeText(getContext(), restaurants.get(position).getId().toString(), Toast.LENGTH_SHORT).show();
			}
		});
	}

}

   

public class selRestaurantApdater extends BaseAdapter {
    private ArrayList<Restaurant> restaurants;
    private LayoutInflater  inflater;
    public selRestaurantApdater(Context context,ArrayList<Restaurant> restaurants) {
    	this.restaurants = restaurants;
    	this.inflater = LayoutInflater.from(context);
    }
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return restaurants.size();
	}
	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}
	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		Holder viewHolder;
		if (convertView == null) {
			convertView = inflater.inflate(R.layout.textview1, null);
			viewHolder = new Holder();
			viewHolder.tView = (TextView) convertView.findViewById(R.id.textView);
			viewHolder.tView.setText(restaurants.get(position).getName());
	        convertView.setTag(viewHolder);
		} else {
			viewHolder = (Holder) convertView.getTag();
		}
		return convertView;
	}
	class Holder {
		TextView tView;
	}

}

 测试:

public class testDialog extends Activity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		ArrayList<Restaurant> restaurants =  new ArrayList<Restaurant>();
		for (int i=0;i<5;i++) {
		   Restaurant restaurant = new Restaurant();
		   restaurant.setId(i);
		   restaurant.setName("name"+i);
		   restaurants.add(restaurant);
		}
		MySingleSelDialog mdialog = new MySingleSelDialog(this, restaurants,"选择城市");
		mdialog.show();
	}
 

 

 

分享到:
评论

相关推荐

    自定义Dialog加ListView

    在本项目中,“自定义Dialog加ListView”就是将`Dialog`与`ListView`结合,创建一个可以展示列表数据的弹出窗口,以提供更加丰富的用户交互体验。 首先,我们需要理解`Dialog`的基本用法。在Android中,我们可以...

    android自定义dialog+listview自适应屏幕显示.zip

    在Android开发中,自定义Dialog和ListView的适配是常见的需求,特别是在创建具有独特用户体验的应用时。本项目“android自定义dialog+listview自适应屏幕显示”主要关注这两个方面的实现,确保界面在不同屏幕尺寸和...

    android自定义dialog嵌套listview自适应屏幕

    在Android开发中,自定义Dialog并使其嵌套ListView以实现屏幕自适应是一项常见的需求。这涉及到Android UI设计、自定义视图以及ListView的适配器机制。以下将详细阐述这个主题的相关知识点。 首先,让我们理解...

    android自定义dialog嵌套listview

    要实现一个自定义Dialog嵌套ListView,我们首先需要创建一个包含ListView的XML布局文件。这个布局通常会包含一个ListView以及其他可能的组件,如标题、按钮等。例如: ```xml android:id="@+id/dialog_title" ...

    自定义dialog实现listview长按删除item数据

    本文将深入探讨如何实现一个自定义Dialog来展示ListView,并且允许用户通过长按来删除ListView中的item数据。 首先,我们需要创建自定义Dialog的布局文件。在res/layout目录下创建一个新的XML文件,例如`dialog_...

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    总结起来,这个示例展示了如何在Android应用中创建一个具有多选功能的自定义Dialog,通过Dialog、ListView和CheckBox的组合实现用户交互。这种功能在很多场景下都很实用,比如选择联系人、文件或者其他任何需要用户...

    自定义Dialog里listview的单选、多选

    本文将详细讲解如何在自定义Dialog中实现ListView的单选和多选功能。 首先,我们需要创建一个自定义Dialog。这通常通过继承`AlertDialog.Builder`或直接使用`DialogFragment`来实现。在`AlertDialog.Builder`中,...

    android dialog嵌套ListView

    以上就是关于“android dialog嵌套ListView”实现的基本步骤,包括创建自定义布局、适配器、设置点击事件以及在`Dialog`中显示`ListView`。通过这种方式,我们可以在`Dialog`中展示丰富的列表数据,并允许用户进行...

    继承AppCompatDialogFragment自定义dialog 弹框(带悬浮效果)

    继承AppCompatDialogFragment自定义dialog 弹框(带悬浮效果),ListView绑定商品信息和图片,点击商品图片添加购物车,弹出悬浮框,继承自AppCompatDialogFragment基类的自定义dialog 弹框。源码可直接调试。大家...

    各种自定义dialog合集

    在Android开发中,自定义Dialog是一种常见的用户界面设计方式,它可以提供更加个性化和丰富的交互体验。自定义Dialog不仅能够满足基本的提示功能,还可以根据应用的风格和需求进行定制,从而提升用户体验。以下是对...

    Android自定漂亮Dialog中嵌入ListView

    通过这种方式,我们可以实现一个既美观又实用的自定义Dialog,其中嵌入的ListView使得用户可以方便地浏览和选择多个项目。这样的设计提高了应用程序的用户体验,也展示了Android开发中的自定义组件能力。

    Android高级应用源码-自定义列表选择Dialog,适用网络请求数据.zip

    这个“Android高级应用源码-自定义列表选择Dialog,适用网络请求数据.zip”文件提供了一个实例,展示了如何创建一个可以加载网络数据并展示在列表中的自定义Dialog。下面将详细阐述相关知识点: 1. **自定义Dialog*...

    自定义列表选择Dialog,适用网络请求数据源码

    在Android中,系统的AlertDialog或ProgressDialog等预定义的Dialog可能无法满足所有设计需求,因此我们需要自定义Dialog以实现更复杂的功能。自定义Dialog通常涉及到创建一个新的布局文件,然后在代码中实例化并设置...

    自定义dialog

    总结来说,这个自定义Dialog项目展示了如何结合ListView和枚举来实现一个具有交互性的弹出窗口。通过适配器处理数据,枚举增强代码的可读性,以及利用SharedPreferences保存用户设置,我们构建了一个功能齐全且用户...

    android自定义Dialog

    不过,自定义Dialog的潜力远不止于此,你还可以实现更复杂的逻辑,比如添加自定义动画、嵌入复杂的视图(如ListView或RecyclerView)等。在实际项目中,可以根据需求进行灵活调整和扩展。 在"StudyDialog"这个...

    自定义的ListView结合RadioButton显示对话框列表数据

    在Android开发中,自定义的ListView结合RadioButton显示对话框列表数据是一种常见的用户界面设计,用于在弹出的对话框中展示一系列可选的列表项。这样的设计能够为用户提供清晰的选择方式,同时保持屏幕的整洁。以下...

    安卓listview相关相关-自定义的dialog运用了listview作为弹框的主显示选择项可多可少灵活方便带有记住上次选择项的功能运用枚举填补数据.rar

    自定义的dialog 运用了listview作为弹框的主显示 选择项可多可少灵活方便 带有记住上次选择项的功能 运用枚举填补数据.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。

    灵活 自定义的Dialog列表

    在标准的Android SDK中,Dialog的样式相对固定,但为了提供更好的用户体验和符合应用独特的设计风格,开发者经常需要自定义Dialog的外观和行为。本教程将深入讲解如何创建一个灵活、自定义的Dialog列表,可以根据...

    安卓Dialog对话框相关-自定义列表选择Dialog适用网络请求数据.rar

    本文将深入探讨如何在Android中自定义一个列表选择Dialog,并结合网络请求数据来实现更丰富的功能。 首先,我们需要了解Dialog的基本用法。在Android SDK中,Dialog类是基于Window的,可以创建一个浮动窗口来显示...

    Android顶部、底部标签,自定义Dialog、Snackbar、Toast,悬浮按钮,展示图伸缩效果,发送消息界面效果,登录界面效果等。

    本示例项目"MDStudySamples-master"聚焦于几个关键组件和交互效果,包括顶部和底部标签导航、自定义Dialog、Snackbar、Toast、悬浮按钮(FloatingActionButton)、图片伸缩效果以及消息发送和登录界面的设计。...

Global site tag (gtag.js) - Google Analytics