android 成長日記 5.關於progress控件和Alertdialog和layout學習

  1. 今天想實現一個工具類就是DialogUtil.方便你們創建各類dialog;android


  2. public class DialogUtil {ide

  3. public DialogUtil(String message,Context context) {函數

  4. AlertDialog.Builder abBuilder = new AlertDialog.Builder(context);工具

  5. abBuilder.setTitle("默認窗口");佈局

  6. abBuilder.setMessage(message);測試

  7. abBuilder.setCancelable(false);ui

  8. abBuilder.setNegativeButton("取消", new OnClickListener() {spa

  9. @Override設計

  10. public void onClick(DialogInterface dialog, int which) {xml

  11. // TODO Auto-generated method stub

  12. }

  13. });

  14. abBuilder.setPositiveButton("肯定",new OnClickListener() {

  15. @Override

  16. public void onClick(DialogInterface dialog, int which) {

  17. // TODO Auto-generated method stub

  18. }

  19. });

  20. abBuilder.show();

  21. }

  22. public DialogUtil(String title,String message,Context context){

  23. AlertDialog.Builder abBuilder = new AlertDialog.Builder(context);

  24. abBuilder.setTitle(title);

  25. abBuilder.setMessage(message);

  26. abBuilder.setCancelable(false);

  27. abBuilder.setNegativeButton("取消", new OnClickListener() {

  28. @Override

  29. public void onClick(DialogInterface dialog, int which) {

  30. // TODO Auto-generated method stub

  31. }

  32. });

  33. abBuilder.setPositiveButton("肯定",new OnClickListener() {

  34. @Override

  35. public void onClick(DialogInterface dialog, int which) {

  36. // TODO Auto-generated method stub

  37. }

  38. });

  39. abBuilder.show();

  40. }


  41. }

這是默認的Alertdialog,我在寫這個工具類的時候想的是

1.怎麼把自定義diaolog寫進去!!還沒實現。看看別人的代碼,發現:AlertDialog.builder對象在show之後。咱們能夠爲它指定本身設計的layout,使用aBuilder.getWindow.setContentView(layout);實現。可是怎麼設置裏面button點擊事件呢,只要在寫 new OnclickListener的時候寫爲new View.OnclickListener就能夠正常使用了,爲啥呢

2.在寫構造函數的時候須要一個context對象可是我沒法得到當前activity的context,我發現此處想得到context對象只能是在構造函數中傳入參數,此處想了一會才懂。

3.下面說說progressbar

if(progressBar1.getVisibility() == View.INVISIBLE)
    {progressBar1.setVisibility(View.VISIBLE);}
    else {progressBar1.setVisibility(View.INVISIBLE);}

    
    int progress = progressBar2.getProgress();
    progress += 10;
    if(progress < 100){
    progressBar2.setProgress(progress);}
    else{progressBar2.setVisibility(View.INVISIBLE);}

實現了點擊出現和消失功能,還有一個進度條是點擊十次會消失.須要注意的是設置顯示和不顯示都要用一樣的 View.INVISIBLE或者都用View.Gone  

3. 最後說下layout包括linearlayout.,/relativeLayout/framLayout(使用fragment的時候常常使用),/tableLayout(設計相似表格局的時候使用)/.{今天在relativelayout中調用自定義標題欄的時候,老是出現問題不能控制標題欄最上邊,最後在外層加了一個linearlayout後頁面顯示正常了.}\

中LayoutInflater這個類仍是很是有用的,它的做用相似於findViewById()。不一樣點是LayoutInflater是用來找res/layout/下的xml佈局文件,而且實例化;而findViewById()是找xml佈局文件下的具體widget控件(如Button、TextView等)可是個人自定義控件使用此方法點擊無效,晚上測試啥問題,回頭再寫,下班了


 如今我知道個人錯誤是什麼了,我把引用佈局和自定義控件的引用方法弄錯了,使用include只能來引用佈局不能爲其設置事件,可是想要引用自定義控件就要把你本身控件當成系統的那樣來引用,就好像LinearLayout,區別是你須要把包的名字也引入。就像

 <com.example.titletest.TitleLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

        

    </com.example.titletest.TitleLayout>

還有一個注意點就是在設置自定義佈局的時候,寬度必定要注意,一半是wrap_content,不要設置成matchparent。這樣會讓主頁面的控件被擋住,不能被看見。!!!

相關文章
相關標籤/搜索