自定义列表对话框(一)
发布日期:2021-06-30 11:22:44
浏览次数:2
分类:技术文章
本文共 2446 字,大约阅读时间需要 8 分钟。
dialog.xml如下:
listview_item.xml如下:
main.xml如下:
styles.xml如下:
mainActivity如下:
package c.c.testdialog;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.ListView;import android.widget.TextView;/** * Demo描述: * 自定义列表对话框(自定义View中采用ListView) * 该例比自定义列表对话框(二)的代码和效果都要好 * 遇到的问题: * 自定义对话框有黑色边框 * 解决办法: * 设置样式(style) * 参考资料: * http://april19880317.blog.51cto.com/1938095/690380 */public class MainActivity extends Activity { private Button mButton; private View mDialogView; private Dialog mDialog; private ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init(){ mButton=(Button) findViewById(R.id.button); mButton.setOnClickListener(new ClickListenerImpl()); } private class ClickListenerImpl implements OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: // 弹出自定义对话框 showDialog(); break; default: break; } } } private void showDialog(){ String[] items = new String[] { "发送电子邮件", "分享到Twitter", "分享到FaceBook"}; LayoutInflater layoutInflater=(LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); mDialogView=layoutInflater.inflate(R.layout.dialog, null); mListView=(ListView) mDialogView.findViewById(R.id.listView); ArrayAdapteradapter= new ArrayAdapter (MainActivity.this, R.layout.listview_item,items); mListView.setAdapter(adapter); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int arg2,long arg3) { switch (arg2) { case 0: System.out.println("------> 发送电子邮件"); mDialog.dismiss(); break; case 1: System.out.println("------> 分享到Twitter"); mDialog.dismiss(); break; case 2: System.out.println("------> 分享到FaceBook"); mDialog.dismiss(); break; default: break; } } }); mDialog=new Dialog(MainActivity.this, R.style.dialog); mDialog.setContentView(mDialogView); mDialog.show(); }}
转载地址:https://it9527.blog.csdn.net/article/details/8607149 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月12日 10时58分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
javaScript之事件模型,你知道多少?
2019-04-30
Vue2.0:双向数据绑定 之 监听对象,源码分析
2019-04-30
浅析:正则表达式修改字符串数字“10000”为“10,000”
2019-04-30
浅析chrome新特性,追溯源头至HSTS
2019-04-30
什么是Chrome稳定版,Beta版,Dev版和Canary版发布渠道?(转载)
2019-04-30
如何理解ES6 静态编译?
2019-04-30
TC39、ECMA-262、ECMAScript 的一些事儿
2019-04-30
对 && 和 || 这两个逻辑运算符进行一个深入的理解
2019-04-30
margin塌陷 和 margin合并 两个BUG
2019-04-30
javascript:null undefined 和 NaN 的区别
2019-04-30
javascript之 var,let, const之间的异同
2019-04-30
Impala查询卡顿分析案例
2019-04-30
如何对CDH集群中的Impala打印线程堆栈
2019-04-30
Impala元数据简介
2019-04-30
Impala关于ValueTransferGraph一段代码的疑问解答
2019-04-30
Impala元数据缓存的生命周期
2019-04-30
Impala编译:一个maven编译错误的解决
2019-04-30
动态调整Impala日志级别
2019-04-30