Come risolvere Il metodo startActivity (Intent) non è definito per il tipo di nuovo errore di syntax View.OnClickListener ()

Ho un errore di syntax con il mio codice, nel "getView" voglio fare un ascoltatore per il button "update" per passare a un'altra attività:

immettere qui la descrizione dell'immagine

  • Manipolazione dei dati sui web in Android
  • Viste rotazioni (ma non layout) sul cambiamento dell'orientamento dello schermo
  • Cambiare il colore di background trasshiny di progressbar android
  • Copertura del codice di 0% sui test di express con JaCoCo e Gradle
  • java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompatHC in Android Studio
  • emulatore: errore durante la connessione al socket '127.0.0.1:1970': 111 -> Connessione rifiutata
  • @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; } 

    Ho cercato di correggere questi errori su "Intent" ma ho fallito 🙁

    1. Il metodo startActivity (intento) non è definito per il tipo nuovo View.OnClickListener ()

    2. Il metodo getApplicationContext () non è definito per il tipo di nuovo View.OnClickListener ()

    e anche quando ho spostato queste istruzioni dal metodo "onClick" il problema non cambia !! Ho importto la libreria "Intent", come risolvere questo problema ????

  • Le immagini di GridView cambiano l'elemento quando scorrono
  • Creare un progressDialog solo con il filatore (al centro)
  • Jobdispatcher Firebase non si avvia all'interno di una window specificata
  • Android AsyncTask: Sopra le cornici X - troppo lavoro all'interno del thread principale
  • Android - Multipli Spinner
  • Qual è la relazione tra pixel e pixel scalati
  • 5 Solutions collect form web for “Come risolvere Il metodo startActivity (Intent) non è definito per il tipo di nuovo errore di syntax View.OnClickListener ()”

    Se l'adattatore è in un file diverso, occorrerà un context di attività.

    È necessario passare il context attività dalla class attività al constructor dell'adattatore.

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

    startActivity è un metodo della class attività. Quindi è necessario un context di attività per avviare l'attività.

    Inoltre invece di getApplicationContext utilizzare il context di attività.

    Quando call il context di attività o il context dell'applicazione?

    Controllare la risposta da parte di commonsware.

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

    Provare

     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); } }); 

    per un simile problema per me solo questo mi ha aiutato:

      @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); } }); 

    aggiungere context nella class G:

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

    Devi solo call context.startActivity invece, puoi seguire i passi sotto

    Tre semplici passi

    1) Dichiarare il Context mCtx Variabile locale Context mCtx

    2) intializzare con un context di attività sia passando un parametro a constructor / metodo, sia nel metodo onCreate se si utilizza il codice precedente in attività.

    3) call mCtx.startActivity(intent);

    o

    è ansible call ActivityName.this.startActivity()

    Modifica: – Come commento par dmon, è semplicemente ansible utilizzare l'istanza di context locale

    La causa principale del problema è che non è ansible avviare un'attività da un context di applicazione (solo da un context di attività che si ha il diritto di farlo). La ragione di questo è che Android condivide tutte le attività della tua applicazione come gruppo (attività) per consentire il multitasking tra le diverse applicazioni. Quando lanci una nuova applicazione o premi il button Home, per esempio, sei un'applicazione (insieme alle sue attività di backstack) che va in background e lascia la scena ad un nuovo task (con un diverso backstack di attività e così via e così via ). Per ulteriori informazioni su questo meccanismo potete dare un'occhiata qui ( http://developer.android.com/guide/components/tasks-and-back-stack.html ).

    Per get un context che è giusto per ricavare una nuova attività, puoi sempre get il context del genitore della vista che stai gonfiando, chiamando viewgroup.getContext () – anche se dovrai dichiarare il gruppo di visualizzazione come finale , che è ok perché non dovresti toccare il genitore.

    un progetto del tuo 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; } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.