So reparieren Sie die Methode startActivity (Intent) ist undefined für den Typ new View.OnClickListener () Syntaxfehler

Ich habe einen Syntaxfehler mit meinem Code, im "getView" möchte ich einen Listener für die Schaltfläche "update" machen, um zu einer anderen Aktivität zu wechseln:

Bildbeschreibung hier eingeben

  • Android: Wie man Android Emulator für Nexus10?
  • "No Target Selected" Fehler auf Android Tablet Emulator in Eclipse
  • Was ist der Home-Key für den Android-Emulator auf Mac OS?
  • Android Emulator Fehlermeldung: "PANIC: Fehlende Emulator-Engine-Programm für 'x86' CPUS."
  • (Re) Montage der SD-Karte auf Android Emulator
  • Android Emulator auflegen und unmöglich zu beenden
  • @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); View rowView = l.inflate(R.layout.temp, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.textView1); ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1); Button update = (Button) rowView.findViewById(R.id.button1); // update.setOnClickListener(new View.OnClickListener() { // // @Override // public void onClick(View v) { // // Intent redirect = new Intent(getApplicationContext(),Update.class); // startActivity(redirect); // // } // }); textView.setText(sa.get(position)); return rowView; } 

    Ich habe versucht, diese Fehler über "Intent" zu beheben, aber ich habe versagt 🙁

    1. Die Methode startActivity (Intent) ist undefined für den Typ new View.OnClickListener ()

    2. Die Methode getApplicationContext () ist undefined für den Typ new View.OnClickListener ()

    Und auch wenn ich diese Aussagen aus "onClick" -Methode verschoben habe, hat sich das Problem nicht geändert !! Ich habe "Intent" -Bibliothek importiert, wie man das lösen kann ????

  • Admob Keine Füllung vom Anzeigenserver - Anzeige konnte nicht geladen werden: 3
  • Android Market Anwendung Url?
  • Holen Sie sich den aktuellen Standort 0 in Marshmallow, wo unten 23 API gibt es genaue aktuelle Ort mit fused Location
  • Soll ich in Android Studio bekommen oder sollte ich bei Eclipse bleiben?
  • Android-Emulator-Zugangsserver im lokalen Netzwerk
  • Debugging von Android Apps auf Dell Venue 7 mit Eclipse
  • 5 Solutions collect form web for “So reparieren Sie die Methode startActivity (Intent) ist undefined für den Typ new View.OnClickListener () Syntaxfehler”

    Wenn Ihr Adapter in einer anderen Datei ist, benötigen Sie Aktivitätskontext.

    Sie müssen den Aktivitätskontext von Ihrer Aktivitätsklasse an Ihren Adapterkonstruktor übergeben.

    http://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

    startActivity ist eine Methode Ihrer Aktivitätsklasse. Sie benötigen also Aktivitätskontext, um die Aktivität zu starten.

    Auch anstelle von getApplicationContext verwenden Sie den Aktivitätskontext.

    Wann soll der Aktivitätskontext ODER Anwendungskontext aufgerufen werden?

    Überprüfen Sie die Antwort von commonsware.

      update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent redirect = new Intent(context,Update.class); context.startActivity(redirect); } }); 

    Versuchen

     final Activity thisActivity = this; update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent redirect = new Intent(thisActivity,Update.class); thisActivity.startActivity(redirect); } }); 

    Für ein ähnliches problem für mich hat mir das gerade geholfen:

      @Override public void onClick(View v) { Intent intent = new Intent(G.context, SecondActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); G.context.startActivity(intent); } }); 

    Kontext in G hinzufügen Klasse:

     public class G extends Activity { public static Context context; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context = getApplicationContext(); } } 

    Sie müssen nur context.startActivity anrufen, können Sie die folgenden Schritte context.startActivity

    Drei einfache Schritte

    1) deklariere den lokalen Variablenkontext Context mCtx

    2) intialize es mit Activity-Kontext entweder durch Übergabe eines Parameters an Konstruktor / Methode oder in der onCreate-Methode, wenn Sie über Code in Aktivität verwenden.

    3) Aufruf mCtx.startActivity(intent);

    oder

    Sie können ActivityName.this.startActivity() aufrufen

    Bearbeiten: – Als par dmon Kommentar können Sie einfach Ihre lokale Kontextinstanz verwenden

    Die Wurzel deines Problems besteht darin, dass du keine Aktivität aus einer Anwendung starten kannst Kontext (nur aus einem Aktivitätskontext hast du das Recht dazu). Der Grund dafür ist, dass Android alle Aktivitäten Ihrer Anwendung als Gruppe (Aufgabe) bündelt, um Multitasking zwischen verschiedenen Apps zu ermöglichen. Wenn du eine neue App stargst oder zB die Home-Taste drückst, wirst du Bewerbung (zusammen mit ihren Aktivitäten Backstack) in den Hintergrund gehen und die Szene zu einer neuen Aufgabe verlässt (mit einem anderen Aktivitäts-Backstack und so weiter und so weiter) ). Für weitere Informationen über diesen Mechanismus können Sie einen Blick hier ( http://developer.android.com/guide/components/tasks-and-back-stack.html ).

    Um einen Kontext zu gewinnen, der in Ordnung ist, um eine neue Aktivität auszuliefern, kannst du immer den Kontext des Elternteils der Ansicht, die du aufblasst, durch den Aufruf von viewgroup.getContext () – eventhough, dass du die Viewgroup als endgültig deklarieren musst , Was ok ist, da man das Elternteil nicht berühren sollte.

    Ein Entwurf Ihres getView:

     @Override public View getView(int position, View convertView, final ViewGroup parent) { LayoutInflater l = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); View rowView = l.inflate(R.layout.temp, parent, false); TextView textView = (TextView) rowView.findViewById(R.id.textView1); ImageView imageView = (ImageView) rowView.findViewById(R.id.imageView1); Button update = (Button) rowView.findViewById(R.id.button1); update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent redirect = new Intent(parent.getContext(),Update.class); startActivity(redirect); } }); textView.setText(sa.get(position)); return rowView; } 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.