2012-09-10 20 views
-2
Dialog dialog = new AlertDialog.Builder(Activity01.this) 
       .setTitle("Login hint") 
       .setMessage("Here needs your login!") 
       .setPositiveButton(...) 
       .setNeutralButton(... 
       ).create(); 

它是什麼樣的語法?我不明白爲什麼這些點是一個一個的?而create()是針對Builder()還是針對setNeutralButton()Android中有什麼樣的語法?

謝謝!

+0

(...)表示.setPositiveButton(INT文本ID,DialogInterface.OnClickListener聽衆) –

+1

這種編程方式( '之類的語法'),被稱爲** **流暢。 – reinierpost

+0

是的,也被稱爲**流體**或**可鏈接**。除此之外,不僅僅是Android使用這個 - 或者事實上Java--許多OO語言(JavaScript,PHP和其他)都使用這種方法。 – halfer

回答

2

BuilderAlertDialog的靜態內部類。每個通話都會返回this,允許您鏈接方法。最後,您可以撥打create()來創建實際的對話框。除了Android使用這種模式的事實之外,這是基本的Java並且與Android沒什麼關係。

+0

最佳答案!現在很清楚,謝謝! –

2

setTitle,setMessage是DialogBox的方法。

你也可以寫

Dialog dialog = new AlertDialog.Builder(Activity01.this); 
dialog.setTitle("Login hint") 
dialog.setMessage("Here needs your login!") 
dialog.setPositiveButton(...) 
dialog.setNeutralButton(...) 
dialog .create(); 

,如果你想要更多的澄清這一點,你可以訪問this

+0

好!這是我能想象的方式。 –

0

.setPositiveButton(...)是指你想通過文字顯示及寫邏輯點擊事件。

Refer here:

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setMessage("Are you sure you want to exit?") 
     .setCancelable(false) 
     .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       MyActivity.this.finish(); 
      } 
     }) 
     .setNegativeButton("No", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.cancel(); 
      } 
     }); 
AlertDialog alert = builder.create();