广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    android控件封装 自己封装的dialog控件

    2018-04-03 22:30:12 次阅读 稿源:互联网
    广告
    自定义dialog肯定是用的很多了但是感觉每次做都是很乱 单纯完成任务而已,现在封装了一下 以后用到直接copy
    先上图:

    主activity
    代码如下:

    package com.su.testcustomdialog;
    import com.su.testcustomdialog.MyDialog.Dialogcallback;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    public class CustomDialogActivity extends Activity {
    private TextView textView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    textView = (TextView) findViewById(R.id.textView11);
    Button button = (Button) findViewById(R.id.button1);
    button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    MyDialog myDialog = new MyDialog(CustomDialogActivity.this);
    myDialog.setContent("哥来自Activity");
    myDialog.setDialogCallback(dialogcallback);
    myDialog.show();
    }
    });
    }
    /**
    * 设置mydialog需要处理的事情
    */
    Dialogcallback dialogcallback = new Dialogcallback() {
    @Override
    public void dialogdo(String string) {
    textView.setText("哥自Dialog: " + string);
    }
    };
    }

    然后是MyDialog的核心了
    代码如下:

    package com.su.testcustomdialog;
    import android.app.Dialog;
    import android.content.Context;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    /**
    * 自定义dialog
    * @author sfshine
    *
    */
    public class MyDialog {
    Context context;
    Dialogcallback dialogcallback;
    Dialog dialog;
    Button sure;
    TextView textView;
    EditText editText;
    /**
    * init the dialog
    * @return
    */
    public MyDialog(Context con) {
    this.context = con;
    dialog = new Dialog(context, R.style.dialog);
    dialog.setContentView(R.layout.dialog);
    textView = (TextView) dialog.findViewById(R.id.textview);
    sure = (Button) dialog.findViewById(R.id.button1);
    editText = (EditText) dialog.findViewById(R.id.editText1);
    sure.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    dialogcallback.dialogdo(editText.getText().toString());
    dismiss();
    }
    });
    }
    /**
    * 设定一个interfack接口,使mydialog可以理activity定的事情
    * @author sfshine
    *
    */
    public interface Dialogcallback {
    public void dialogdo(String string);
    }
    public void setDialogCallback(Dialogcallback dialogcallback) {
    this.dialogcallback = dialogcallback;
    }
    /**
    * @category Set The Content of the TextView
    * */
    public void setContent(String content) {
    textView.setText(content);
    }
    /**
    * Get the Text of the EditText
    * */
    public String getText() {
    return editText.getText().toString();
    }
    public void show() {
    dialog.show();
    }
    public void hide() {
    dialog.hide();
    }
    public void dismiss() {
    dialog.dismiss();
    }
    }

    dialog的布局
    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="30.0dp"
    android:orientation="vertical"
    android:padding="10dip" >
    <!-- 这里如果使用android:layout_width="5000dip"设置一个极大的值 系统就会 -->
    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="30.0dp"
    android:gravity="center"
    android:text="自定义Dialog"
    android:textColor="#F0F"
    android:textSize="20dip" />
    <TextView
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
    <EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >
    </EditText>
    <Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:text="定" />
    </LinearLayout>

    style 的文件
    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <style name="dialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:background">#FFF</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:backgroundDimEnabled">true</item>
    </style>
    </resources>

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告