自定义dialog

来源:互联网 发布:java循环读取txt文件 编辑:程序博客网 时间:2024/06/11 08:08

//创建并显示dialog

1、写一个要显示的布局xml

2、写一个类继承自DialogFragment,重写onCreateView   或者onCreateDialog方法返回布局的显示

public class MyDialog extends DialogFragment {
private Button btn;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
View view = inflater.inflate(R.layout.page2, null);
return view;
}


}


3、显示出来

MyDialog myDialog = new MyDialog();
myDialog.show(getFragmentManager(), "tag");



二、实现dialog与Activity通信

1、在MyDialog中定义接口,需要的Activity实现这个接口

2、MyDialog中完成操作之后,回调Activity中的接口方法

//dialog类

public class MyDialog extends DialogFragment {
private View view;
private EditText name;
private EditText password;


// 创建dialog
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new Builder(getActivity());
view = View.inflate(getActivity(), R.layout.page2, null);
name = (EditText) view.findViewById(R.id.name);
password = (EditText) view.findViewById(R.id.password);


builder.setView(view);
builder.setPositiveButton("好了", new DialogInterface.OnClickListener() {


@Override
public void onClick(DialogInterface arg0, int arg1) {
ClickListner clickListner = (ClickListner) getActivity();// 回调
clickListner.onclik(name.getText().toString(), password
.getText().toString());


}
});
return builder.create();


}


// 回调接口
public interface ClickListner {
void onclik(String name, String password);
}
}


//MainActivity类

public class MainActivity extends Activity implements ClickListner {
private TextView tv;
private ImageView imageView;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
inteData();
}


private void findViews() {
imageView = (ImageView) findViewById(R.id.imageView);
tv = (TextView) findViewById(R.id.tv);
}


private void inteData() {
imageView.setOnClickListener(new OnClickListener() {


@Override
public void onClick(View arg0) {
MyDialog myDialog = new MyDialog();
myDialog.show(getFragmentManager(), "tag");


}


});
}


@Override
public void onclik(String name, String password) {
tv.setText("name: " + name + "   password: " + password);
}

}



0 0
原创粉丝点击