-2

Java 新手来了。

AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dlg = builder.setMessage(messageText).create();
dlg.setOwnerActivity(this);
dlg.show();

^ 这段代码在主类中运行良好,但是当我尝试制作这样的外部代码时:

Messages myMessages = new Messages();
myMessages.SendAlert("Oh shi--!");

+

public class Messages extends Activity {
    public void SendAlert(String messageText) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        AlertDialog dlg = builder.setMessage(messageText).create();
        dlg.setOwnerActivity(this);
        dlg.show();
    }
}

^ 它根本不工作。

我能用它做什么?:-\

4

2 回答 2

2

因为你不能像那样创建新的活动。将创建者活动传递给消息的构造函数,而不是扩展活动。

public class Messages {
private Activity activity;
public Message(Activity activity){
    this.activity = activity;
}

public void SendAlert(String messageText) {
    AlertDialog.Builder builder = new AlertDialog.Builder(activity);
    AlertDialog dlg = builder.setMessage(messageText).create();
    dlg.setOwnerActivity(activity);
    dlg.show();
}

}

于 2013-02-24T11:42:25.253 回答
0

我想你正在寻找一个帮助类。Context主要思想是拥有静态方法并为每个调用传递。

例如:

public class AlertHelper {

  private AlertHelper() {
  }

  public static void sendAlert(Context ctx, String messageText) {
    AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
    AlertDialog dlg = builder.setMessage(messageText).create();
    dlg.show();
  }
}
于 2013-02-24T11:54:05.933 回答