简单继承Dialog的用法
1、首先构造dialog的时候,可以设定一个style:
<style name="oneDialog_theme" parent="android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:background">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
这里常设定的是
<item name="android:windowNoTitle">true</item> //设定dialog是否有title区
和
<item name="android:backgroundDimEnabled">true</item> //设定dialog显示时是否全屏灰色
2、然后dialog构造时添加自定义的布局view:布局如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="500dp"
android:layout_height="match_parent"
android:gravity="center"
android:background="#ffffff"
android:orientation="vertical" >
<TextView
android:id="@+id/dialog_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:background="@drawable/table_frame_gray"
android:textColor="@color/black"
android:text="text"/>
<Button
android:id="@+id/dialog_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"/>
</LinearLayout>
3、这样基本就可以编写继承dialog了:
public class OneDialog extends Dialog implements View.OnClickListener{
private Button button;
private TextView textView;
private Context context;
public OneDialog(Context context) {
super(context,R.style.oneDialog_theme);//这里可以设置上style
this.context = context;
setCanceledOnTouchOutside(true);//设置点击外部可取消dialog
getWindow().setGravity(Gravity.BOTTOM);//设置dialog出现在屏幕底部
setContentView(R.layout.onedialog);//设置dialog的view
button = (Button) findViewById(R.id.dialog_button);
textView = (TextView) findViewById(R.id.dialog_textView);
button.setOnClickListener(this);
textView.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.dialog_button:
textView.setText("12345678");
break;
case R.id.dialog_textView:
String tel = textView.getText().toString();
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.setData(Uri.parse("tel:"+tel));
context.startActivity(intent);
break;
default:
break;
}
}
}
4、activity的简单布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="dialog"
android:onClick="showDialog"/>
</RelativeLayout>
最后activity中的showDialog 方法就可以这么写了:
public void showDialog(View v){
OneDialog dialog = new OneDialog(this);
dialog.show();
}