Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.youkuaiyun.com/y18334702058/article/details/44624305
- 主题:用户界面之Dialog(对话框)
Dialog(对话框)实例:
activity_main.xml源代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/btn1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="简易对话框"
/>
<Button
android:id="@+id/btn2"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="列表选择框"
/>
<Button
android:id="@+id/btn3"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="第一种进度条框"
/>
<Button
android:id="@+id/btn4"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="第二种进度条框"
/>
</LinearLayout>
MainActivity.java源代码:
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener{
private Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
btn1 =(Button)findViewById(R.id.btn1);
btn1.setOnClickListener(this);
btn2 =(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(this);
btn3 =(Button)findViewById(R.id.btn3);
btn3.setOnClickListener(this);
btn4 =(Button)findViewById(R.id.btn4);
btn4.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btn1:
AlertDialog.Builder builder0 = new AlertDialog.Builder(MainActivity.this);
builder0.setIcon(R.drawable.ic_launcher);
builder0.setTitle("对话框");
builder0.setMessage("你是准备去打酱油吗?");
//设定积极按钮事件
builder0.setPositiveButton("确认", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "点击了--确认",
Toast.LENGTH_SHORT).show();
}
});
//设定消极按钮事件
builder0.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "点击了--取消",
Toast.LENGTH_SHORT).show();
}
});
builder0.create().show();
break;
case R.id.btn2:
final String[] mItems = { "item0", "item1", "itme2", "item3", "itme4",
"item5", "item6" };
AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
builder1.setTitle("列表选择框");
builder1.setItems(mItems, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, mItems[which],
Toast.LENGTH_SHORT).show();
}
});
builder1.create().show();
break;
case R.id.btn3:
ProgressDialog mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setIcon(R.drawable.ic_launcher);
mProgressDialog.setTitle("第一种进度条框");
//设定进度条风格
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
//设定进度条最大值
mProgressDialog.setMax(75);
mProgressDialog.setButton("确认",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "点击了--确认",
Toast.LENGTH_SHORT).show();
}
});
mProgressDialog.setButton("取消",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Toast.makeText(MainActivity.this, "点击了--取消",
Toast.LENGTH_SHORT).show();
}
});
mProgressDialog.show();
break;
case R.id.btn4:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setTitle("第二种进度条框");
mProgressDialog.setMessage("正在读取中,请稍候。。。");
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(true);
mProgressDialog.show();
break;
}
}
}
运行结果:
点击第一个按钮:
点击第二个按钮:
点击第三个按钮:
点击第四个按钮:
自定义Dialog(实例)
在MainActivity中定义一个打开自定义Dialog的按钮
MainActivity.java源代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btn;
MyDialog md;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.btn);
md = new MyDialog(this);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
md.show();
}
});
}
}
activity_main.xml源代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/btn"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="显示自定义对话框"
/>
</LinearLayout>
自定义对话框类MyDialog,必须继承Dlalog类。
MyDialog.java源代码:
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MyDialog extends Dialog{
TextView text;
Button button_yes,button_no;
ImageView image;
public MyDialog(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mydialog);
text = (TextView)findViewById(R.id.text);
button_yes = (Button) findViewById(R.id.button_yes);
button_no = (Button) findViewById(R.id.button_no);
image = (ImageView)findViewById(R.id.image);
setTitle("自定义的dialog");
text.setText("我是蛋蛋");
image.setImageResource(R.drawable.myimage);
button_yes.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
dismiss();
}
});
button_no.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
dismiss();
}
});
}
}
mydialog.xml源代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5px"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#336699"
/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5px"
>
<Button
android:id="@+id/button_yes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Yes "
android:gravity="center"
/>
<Button
android:id="@+id/button_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" No "
android:gravity="center"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
运行结果:
这就实现了自定义Dialog,如果想定义更漂亮的Dialog,我们继续美化下去吧,继续努力,学习更多!
Focus on technology, enjoy life!—— QQ:804212028
浏览链接:http://blog.youkuaiyun.com/y18334702058/article/details/44624305