慕课大学基于Android P 的移动应用开发之第四章

1.自定义的一个Toast显示
public class MainActivity extends AppCompatActivity {
    private Button mybut;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mybut=findViewById(R.id.mybut);

        mybut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast=Toast.makeText(MainActivity.this,"loginSucceful",Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER,0,0);

                LinearLayout linearLayout=(LinearLayout)toast.getView();//getview获取的是一个LinearLayout对象
                ImageView img=new ImageView(getApplicationContext());//使用了getApplicationContext获取context
                img.setImageResource(R.drawable.ic_launcher_background);
                linearLayout.addView(img,0);//0是该图片在父容器中的索引位置
                toast.show();

            }
        });
    }
}
2.从布局页面(xml)自定义的一个Toast

布局页面toastlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/myimg"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView
        android:id="@+id/mytext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

java文件

public class MainActivity extends AppCompatActivity {
    private Button mybut;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mybut=findViewById(R.id.mybut);

        mybut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                toastShow(mybut.getText().toString(),R.drawable.navigate01);
            }
        });
    }
    public void toastShow(String content,int image){
        Toast toast=Toast.makeText(MainActivity.this,"loginSucceful",Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER,0,0);
        //从布局文件里转化视图控件
        View view= LayoutInflater.from(MainActivity.this).inflate(R.layout.toastlayout,null);
        TextView toastText=view.findViewById(R.id.mytext);//从布局里寻找id
        ImageView toastImage=view.findViewById(R.id.myimg);

        toastText.setText(content);
        toastImage.setImageResource(image);
        toast.setView(view);

        toast.show();

    }
}
3.从布局页面(xml)自定义的一个popupWindow

创建布局页面popwindow.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/myimg"
        android:src="@drawable/navigate02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/mytext"
        android:text="mytext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

activity文件

public class MainActivity extends AppCompatActivity {
    private Button mybut;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mybut=findViewById(R.id.mybut);

        mybut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popshow();
            }
        });
    }
    public void popshow(){
        //从布局文件转视图
        View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.popwindow,null,false);
        //设置窗口的内容,位置参数,聚焦参数
        PopupWindow popupWindow=new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,true);
        popupWindow.setTouchable(true);//设置可触摸性
        //设置窗口的出现位置,基于mybut偏移一定的位置
        //popupWindow.showAsDropDown(mybut,0,0,Gravity.BOTTOM);
        popupWindow.showAtLocation(getWindow().getDecorView(), Gravity.BOTTOM,0,0);
    }
}
4.Alertdialog
public class MainActivity extends AppCompatActivity {
    private Button mybut;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mybut=findViewById(R.id.mybut);

        mybut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                alertDialog();
            }
        });
    }
    public void alertDialog(){
        AlertDialog alertDialog=new AlertDialog.Builder(MainActivity.this).create();
        alertDialog.setTitle("myAlertDialog");
        alertDialog.setIcon(R.drawable.navigate05);
        alertDialog.setMessage("please read the message clearly");
        alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "conform", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"u click the conformButton",Toast.LENGTH_SHORT).show();
            }
        });
        alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE,"digree",new DialogInterface.OnClickListener(){

            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this,"u click the degree",Toast.LENGTH_SHORT).show();

            }
        });
        alertDialog.show();
    }
}
4.自定义Alertdialog

自定义的dialoglayout布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/lisence"
        android:text="sdfajsdfkl;ajsdfkl;asdjf;ldajs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <CheckBox
        android:id="@+id/mycheck"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <Button
        android:id="@+id/mybut"
        android:text="agree"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

自定义CustomDialog类文件

public class CustomDialgo extends Dialog {
    //自定义的构造函数
    public CustomDialgo(@NonNull Context context ,OnCustomDialogListener customDialogListener) {
        super(context);
    }



    //创建一个时间监听的接口
    public interface OnCustomDialogListener{
        public void btnComfirmLicenseClicked(boolean isConfirm);
    }

    private  OnCustomDialogListener CustomDialogListener;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialoglayout);
        //设定视图的宽度
        Window window=this.getWindow();
        WindowManager.LayoutParams layoutParams = window.getAttributes();
        layoutParams.width=WindowManager.LayoutParams.MATCH_PARENT;
        this.getWindow().setAttributes(layoutParams);

        Button button=findViewById(R.id.mybut);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //拿到布局的checkbox
                CheckBox checkBox=findViewById(R.id.mycheck);
                CustomDialogListener.btnComfirmLicenseClicked(checkBox.isChecked());
            }
        });
    }
}

Activity文件

public class MainActivity extends AppCompatActivity {
    private Button mybut;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mybut=findViewById(R.id.mybut);

        mybut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                alertDialog();
            }
        });
    }
    public void alertDialog(){
       CustomDialgo customDialgo=new CustomDialgo(MainActivity.this, new CustomDialgo.OnCustomDialogListener() {
           @Override
           public void btnComfirmLicenseClicked(boolean isConform) {
               if (isConform==true){
                   Toast.makeText(MainActivity.this,"custom dialog",Toast.LENGTH_SHORT).show();
               }
           }
       });
        customDialgo.show();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值