我做了一個類(Paperclip),它使得一個自定義對話框出現在屏幕上。在我的活動中,我創建了Paperclip的一個實例,並使對話框顯示在活動上。我想要的是當某個按鈕被按下時,活動上的一些代碼被執行。我希望從活動中執行此代碼,因爲我想要一個對話框,可以在項目中的許多不同活動上重複使用該對話框。從課上,從一個活動中調用一個函數
我正在考慮在課堂上做一個變量,並在活動中附加一個監聽器。這是一個好方法,還是有一個更簡單的解決方案?
public class Paperclip {
int i = 0;
Dialog myDialog;
TextView t;
int mid;
Context context2;
public Paperclip(Context context) {
super();
context2 = context;
}
public void Showit(final String[] Messages) {
final int lengte = Messages.length;
myDialog = new Dialog(context2, R.style.CustomDialogTheme);
myDialog.setContentView(R.layout.messagebox);
t = (TextView) myDialog.findViewById(R.id.message);
if (lengte != 0) {
if (i < lengte) {
t.setText(Messages[i]);
i++;
}
Button iets = (Button) myDialog.findViewById(R.id.mbja);
iets.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (i < lengte) {
t.setText(Messages[i]);
i++;
} else{
t.setText("Ik hoop dat deze informatie nuttig was. Klik op Ja om alles opnieuw te horen.");
i = 0;
}
}
});
}
Button iets2 = (Button) myDialog.findViewById(R.id.button2);
iets2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
myDialog.dismiss();
}
});
Button iets3 = (Button) myDialog.findViewById(R.id.button3);
iets2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//TODO: execute code from activity here.
}
});
myDialog.show();
}
}
謝謝!
請添加代碼片段 – Chris
除非您想讓對話框成爲一個組件(可在其他項目中重用),否則我只需將它傳遞給活動實例的引用並直接調用該方法。 – SJuan76
你應該讀一些關於[DialogFragments](http://developer.android.com/guide/topics/ui/dialogs.html) – thepoosh