Rufen Sie startActivity einer activity-Klasse von einer anderen Klasse(overlay)
habe ich Target.java(es ist die wichtigste Aktivität) und Layout.java.
Wenn der Benutzer auf eine Schaltfläche klickt, eine url öffnet.
Klicken Sie auf die Schaltfläche verarbeitet wird, in Layout.java.
deleteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
DebugLog.LOGD("Within onClick event of 'GO' button ");
Target.openURL();
}
});
Target.java hat eine statische Funktion openURL
public static void openURL() {
Uri uri = Uri.parse("http://www.thecinema.in");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
Ich würde gerne wissen, wie ich kann, damit dieser code funktioniert, da der Fehler im immer jetzt ist "Nicht möglich ist, einen statischen Verweis auf die nicht-statische Methode startActivity(Intent) vom Typ Activity" . Ich kann verstehen, startActivity wird nicht funktionieren, die innerhalb einer statischen Funktion, aber bitte mir empfehlen, wie könnte ich erreichen das Ziel ..ich bin ein Neuling auf android.Zur info ..Danke Jungs
-Code aktualisiert :
Layout.java
deleteButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
DebugLog.LOGD("Within onClick event of 'GO' button ");
Target iA = new Target();
iA.openURL();
}
});
Target.java
public void openURL() { //removed static keyword
DebugLog.LOGD("Within nDelete event of GO button ");
Uri uri = Uri.parse("http://www.thecinema.in");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
Ausnahme geworfen:
03-02 10:10:28.351: D/QCAR(6820): Within onClick event of 'GO' button
03-02 10:10:28.351: W/dalvikvm(6820): threadid=1: thread exiting with uncaught exception (group=0x400207d8)
03-02 10:10:28.361: E/AndroidRuntime(6820): FATAL EXCEPTION: main
03-02 10:10:28.361: E/AndroidRuntime(6820): java.lang.NullPointerException
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.app.Activity.startActivityForResult(Activity.java:2817)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.app.Activity.startActivity(Activity.java:2923)
03-02 10:10:28.361: E/AndroidRuntime(6820): at com.ingage.pocs.phonegap.Layout$4.onClick(Layout.java:124)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.view.View.performClick(View.java:2408)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.view.View$PerformClick.run(View.java:8816)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.os.Handler.handleCallback(Handler.java:587)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.os.Handler.dispatchMessage(Handler.java:92)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.os.Looper.loop(Looper.java:123)
03-02 10:10:28.361: E/AndroidRuntime(6820): at android.app.ActivityThread.main(ActivityThread.java:4633)
Jungs, was schief gelaufen hier..
- entfernen Sie die Statik von openURL(), wenn Sie verwenden möchten, openURL anderen Orten, erstellen Sie ein Objekt der openURL enthaltenen Klasse und rufen diese Methode auf. dies löst nicht machen statischen Verweis Fehler..
- Danke thinkstep.ich habe versucht, erstellen ein Objekt aus der Ziel-in Layout und versucht, den Aufruf nicht-statische Funktion openURL(Chk aktualisierten code). Die func aufgerufen wurde aber eine Ausnahme geworfen wurde.. java.lang.NullPointerException
Du musst angemeldet sein, um einen Kommentar abzugeben.
war ich in der Lage zu kommen mit einer Lösung für diese Frage.
Unter Target.java ich erstellte openURL() als:
Ich habe eine neue Aktivität OpenURL.java und zugehörigen intent "com.ingage.pocs.phonegap.URL" mit es:
}
Layout.java:
Das beste ist, es hat geklappt 🙂 Wenn Euch eine bessere oder vernünftigere Lösung , pls hier posten.danke
startActivity ist nicht statisch und da Sie es aufrufen Ziel, das nicht-Layout kann es nicht beheben, rufen Kontext.
Müssen Sie zum Aufruf von startActivity Layout.java oder übergeben Sie die Referenz-oder Ziel-Layout-Klasse
machen Sie es wie diese
Layout.java:
Target.java:
Haben Sie
Hast du vielleicht meinst zu schreiben
Würde werfen ein
NullPointerException
weil Sie Fragen Java finden Sie eine Klasse mit dem NamenTargets
wenn keiner vorhanden ist.