安卓通知的使用系列6:对话框通知的使用之自定义对话框

自定义对话框是使用对话框的一种高级形式,下面我们来介绍一下它的使用方式。

整体思路:首先定义一个custom_dialog.xml文件,在这个文件中放置几个控件,作为自定义的对话框的界面,创建一个CustomDialog类,在这个类中定义它的构造方法和show方法,在show方法中绑定custom_dialog.xm文件,设置这个xml文件中控件的属性,并显示这个自定义对话框。

custom_dialog.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:padding="10dp"
     >
    
    <ImageView 
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_marginRight="10dp"
        />
    
    <TextView 
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:textColor="#FFF"
        />

</LinearLayout>
CustomDialog.java文件:

public class CustomDialog {

	private Context context;
	private Dialog dialog;
	public CustomDialog(Context context) {
		this.context=context;
		// TODO Auto-generated constructor stub
		dialog=new Dialog(context);
	}

	public void show() {
		// TODO Auto-generated method stub
//		第二个参数为null,表示当前对话框是没有根布局的
		View view=LayoutInflater.from(context).inflate(R.layout.custom_dialog, null);
//		也可以采用这种方式来加载:setContentView(R.layout.custom_dialog);
		dialog.setContentView(view);
		dialog.setTitle("自定义对话框");
		TextView textview=(TextView)view.findViewById(R.id.text);
		textview.setText("你好,自定义对话框");
		textview.setTextColor(Color.BLACK);
		ImageView imageView=(ImageView)view.findViewById(R.id.image);
		imageView.setImageResource(R.drawable.ic_launcher);
		dialog.show();
	}
	

}
MainActivity.java文件:

public class MainActivity extends Activity {

    private Button button3;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button3=(Button)findViewById(R.id.button3);
		
		button3.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
//				显示一个自定义对话框
				CustomDialog dialog=new CustomDialog(MainActivity.this);
				dialog.show();
			}
		});
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章