弹出的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");
}
});