【android控件】dialog自定义布局

本文介绍了如何在Android中创建自定义布局的Dialog,通过加载布局文件并设置按钮监听,实现点击事件更新文本内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/dialog"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<EditText
android: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"
>
<TextView
android: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>
<Button
android: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>
<Button
android: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");
        }
       });




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值