自定义 alertDialog
来源:互联网 发布:matlab读取txt到矩阵 编辑:程序博客网 时间:2024/05/16 18:52
列表layout
linearlayout.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffffff"></solid> <padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" /> <corners android:radius="4dp" /> <stroke android:width="1dip" android:color="#c0c0c0"></stroke></shape>
top_linearlayout.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#1C86EE"></solid> <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> <corners android:radius="4dp" /></shape>
head.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="100dip" android:id="@+id/mainDlgLinearLayout" android:orientation="vertical" android:background="@drawable/linearlayout" android:padding="1dip" android:layout_height="185dip"> <LinearLayout android:layout_width="fill_parent" android:background="@drawable/top_linearlayout" android:paddingTop="5dip" android:layout_height="30dip"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingBottom="5dip" android:gravity="center_vertical" android:background="#1C86EE"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="nihaoya" android:id="@+id/nameTextView" android:paddingLeft="20dip"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:id="@+id/listLinearLayout" android:layout_height="fill_parent"> <ListView android:layout_width="fill_parent" android:divider="#c0c0c0" android:cacheColorHint="#ffffff" android:layout_height="fill_parent" android:dividerHeight="0.5dip" android:id="@+id/mylist" ></ListView> </LinearLayout> </LinearLayout> </LinearLayout>
SelectDialog类
package com.lin.dialog;import android.app.AlertDialog;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;import android.widget.ListAdapter;import android.widget.ListView;public class SelectDialog {private AlertDialog dialog;private ListView listView;private LinearLayout mainDlgLinearLayout;private LinearLayout listLinearLayout;public SelectDialog(Context context){ dialog= new AlertDialog.Builder(context).create();dialog.show();LayoutInflater inflater=LayoutInflater.from(context);View view=inflater.inflate(R.layout.head,null); dialog.getWindow().setContentView(view); listView=(ListView)view.findViewById(R.id.mylist); mainDlgLinearLayout=(LinearLayout)view.findViewById(R.id.mainDlgLinearLayout); listLinearLayout=(LinearLayout)view.findViewById(R.id.listLinearLayout);}/** * 绑定适配器 */public SelectDialog setAdapter(ListAdapter adapter,float radio,int width){System.out.println("radio=="+radio);int count=adapter.getCount();LayoutParams params=mainDlgLinearLayout.getLayoutParams();params.width=(int) (width*radio);params.height=(int)((count+1)*(30+1)*radio);mainDlgLinearLayout.setLayoutParams(params);params=listLinearLayout.getLayoutParams();params.width=(int) (width*radio);params.height=(int)(count*(30+1)*radio);listLinearLayout.setLayoutParams(params);System.out.println(params.width);System.out.println(params.height);listView.setAdapter(adapter);return this;}}
MainActivity,
package com.lin.dialog;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.ListView;import com.lin.adapter.DialogAdapter;public class AlertDialogActivity extends Activity { /** Called when the activity is first created. */private Button openDlg;private float radio; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); openDlg=(Button)this.findViewById(R.id.openDlgBtn); openDlg.setOnClickListener(buttonListener); radio=getResources().getDisplayMetrics().density;//像素密度 } View.OnClickListener buttonListener=new View.OnClickListener(){@Overridepublic void onClick(View v) {List<String> mylist=new ArrayList<String>();for(int i=0;i<5;i++){mylist.add("nihao ya ");}DialogAdapter adapter=new DialogAdapter(mylist,AlertDialogActivity.this);SelectDialog dialog=new SelectDialog(AlertDialogActivity.this);dialog.setAdapter(adapter,radio,150); //第三个参数为屏幕宽度//showDialog(DIALOG);} }; }
- 自定义 alertDialog
- 自定义AlertDialog
- AlertDialog自定义
- 自定义AlertDialog
- 自定义 AlertDialog
- 自定义AlertDialog
- 自定义Alertdialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- 自定义AlertDialog
- AlertDialog 自定义
- 自定义AlertDialog
- 自定义alertDialog
- 中国校友会网2012中国大学排行榜100强
- android 目录树
- android开发------案例五(optionmenu的使用)
- Properties属性
- android开发------案例六(contextmenu的使用)
- 自定义 alertDialog
- Framework Design Guidelines读书笔记
- 发审委新股审核进程
- Windows下载Android源码
- VC+Boost静态库编译问题、解决方法
- 手机操作系统之争:为什么谷歌快微软慢
- javascript脚本控件
- 如何删除/隐藏windows资源管理器中的硬盘分区
- iWisoft Free Video Converter-免费全能视频转换器