【android控件】dialog自定义布局

来源:互联网 发布:suse linux snmp 编辑:程序博客网 时间:2024/04/29 17:39

弹出的dialog经常需要自己定义布局,包括加入一些textview等等

布局文件如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutandroid:id="@+id/dialog"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="http://schemas.android.com/apk/res/android"><EditTextandroid:id="@+id/person_input"android:layout_width="320px"android:layout_height="44px"android:text="冰雪大世界"android:textSize="18sp"android:layout_alignParentTop="true"android:layout_alignParentLeft="true"><TextViewandroid:id="@+id/person_answer"android:layout_width="319px"android:layout_height="106px"android:text="TextView"android:layout_below="@+id/person_input"android:layout_alignParentLeft="true"></TextView><Buttonandroid:id="@+id/ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="搜索"android:layout_below="@+id/person_answer"android:layout_alignParentLeft="true"></Button><Buttonandroid:id="@+id/no"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="取消"android:layout_alignTop="@+id/ok"android:layout_alignRight="@+id/person_answer"></Button></EditText></RelativeLayout>

LayoutInflater flater = LayoutInflater.from(OverlayDemo.this);注意此处用网上别人的this是不可以的,因为这里的dialog是写在监听器里面的,所以this的话就直接只指listener了,会找不到,需要改成当前的activity才可

 View view = flater.inflate(R.layout.dialog, null);
   
  AlertDialog.Builder builder = new AlertDialog.Builder(OverlayDemo.this); 
  builder.setView(view);
  AlertDialog alert = builder.create(); 
  alert.show();
  Button btnSearch = (Button)view.findViewById(R.id.ok);//注:“View.”别忘了,不然则找不到资源
  EditText person_input=(EditText)view.findViewById(R.id.person_input);//编辑框
  final TextView person_answer=(TextView)view.findViewById(R.id.person_answer);//显示标题文本
   btnSearch.setOnClickListener(new OnClickListener()
   {
        public void onClick(View v) 
        {  
        person_answer.setText("haha");
          System.out.println("ok");
        }
       });




0 0
原创粉丝点击