Android 自定义Dialog 的使用
生活随笔
收集整理的這篇文章主要介紹了
Android 自定义Dialog 的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
單個Dialog 自定義布局 ,這個只能算半自定義,就是一個彈框布局插入到AlertDialog 中 使用setView 即可
代碼如下
AlertDialog.Builder builder = new AlertDialog.Builder(InflateActivity.this);View view = getLayoutInflater().inflate(R.layout.bottom__pop_item, null);builder.setView(view);final AlertDialog dialog = builder.create();dialog.show();TextView textView = view.findViewById(R.id.photo);textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();Toast.makeText(InflateActivity.this, "點擊了", Toast.LENGTH_SHORT).show();}});}
監聽事件也添加了, 布局更具自己的需求添加即可 。。。。。。。。。
假如是寫一個 android 中間彈框,使用上面的代碼完全沒有問題。。
自定義彈框?
1 先創建一個Dialog 類
public class CommDialog extends Dialog implements View.OnClickListener {private Context context;//上下文private int layoutResID;//布局文件idprivate int[] listenedItem;//監聽的控件idpublic CommDialog(Context context, int layoutResID, int[] listenedItem) {super(context);this.context = context;this.layoutResID = layoutResID;this.listenedItem = listenedItem;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Window dialogWindow = getWindow();dialogWindow.setGravity(Gravity.CENTER);setContentView(layoutResID);WindowManager windowManager = ((Activity) context).getWindowManager();Display display = windowManager.getDefaultDisplay();WindowManager.LayoutParams lp = getWindow().getAttributes();lp.width = display.getWidth() * 4 / 5;// 設置dialog寬度為屏幕的4/5getWindow().setAttributes(lp);setCanceledOnTouchOutside(true);//點擊外部Dialog消失//遍歷控件id添加點擊注冊for (int id : listenedItem){findViewById(id).setOnClickListener(this);}}OnClickListener listener;public void setClickListener(OnClickListener listener) {this.listener = listener;}public interface OnClickListener {void OnItemClick(CommDialog dialog, View view);}@Overridepublic void onClick(View v) {dismiss();listener.OnItemClick(this,v);}}
然后在Activity 中使用這個CommDialog的方法
public class InflateActivity extends AppCompatActivity {private TextView textView;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.inflate_activity_layout);textView = findViewById(R.id.txt);textView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {CommDialog dialog = new CommDialog(InflateActivity.this, R.layout.bottom__pop_item, new int[]{R.id.photo, R.id.camera, R.id.cancel});dialog.setClickListener(new CommDialog.OnClickListener() {@Overridepublic void OnItemClick(CommDialog dialog, View view) {switch (view.getId()) {case R.id.photo:Toast.makeText(InflateActivity.this, "11111", Toast.LENGTH_SHORT).show();break;case R.id.camera:Toast.makeText(InflateActivity.this, "22222", Toast.LENGTH_SHORT).show();break;case R.id.cancel:Toast.makeText(InflateActivity.this, "33333", Toast.LENGTH_SHORT).show();break;}}});dialog.show();}});}
}
自定義呢就是 樣式就自己隨意寫了, 需要注意的就是id的次數 使用幾次,記得寫幾次呢。。。。。。。。
這里自定義Dialog 就結束了,。。。
下篇文章將介紹android 分屏播放知識。。
總結
以上是生活随笔為你收集整理的Android 自定义Dialog 的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个性签名爱情
- 下一篇: Android 判断是否网络连接, 判断