2016-08-29 2 views
0

zugegriffen habe Ich habe ein Problem mit dem Zugriff auf eine Asynctask <> die innerhalb der Klasse A und Klasse A haben einen Adapter (RecyclerViewAdapter), die auf die Klasse zugreifen wollte die AsyncTask <>Wie führe ich eine innere Klasse innerhalb der Klasse, die von Adapter innerhalb der Klasse

kurz erstreckt, würde es so aussehen:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 
    RecyclerView recyclerView; 
    SimpleRecyclerAdapter simpleRecyclerAdapter; 
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); 

    recyclerView.setAdapter(SimpleRecyclerAdapter); 

    public class getData extends AsyncTask<>{ 
     .... 
    } 
} 

und dies ist der SimpleRecyclerAdapter

public class SimpleRecyclerAdapter extends RecyclerView.Adapter<SimpleRecyclerAdapter.VersionViewHolder> { 

//from this I would like to execute getData class 

} 
+0

Klassenname sollte Kapital sein ... ändern Sie das zuerst. –

+0

Ich nehme an, dass Ihre asynctask verwendet wird, um einige Daten zu erhalten, die wiederum Ergebnisse liefern, die in Ihrem Adapter aufgefüllt werden. In diesem Fall ist es besser, auf das Ergebnis der asynctask zu warten und dann das Ergebnis zu verwenden, um den Adapter zu füllen. Lass es mich wissen, wenn du ein Beispiel brauchst. –

+0

Erstellen Sie eine Schnittstelle. Rufen Sie getData.execute beim Callback auf. –

Antwort

1

Versuchen Sie so,

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 
RecyclerView recyclerView; 
SimpleRecyclerAdapter simpleRecyclerAdapter; 
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(MainActivity.this); 
new GetData().execute(); 



} 


public class SimpleRecyclerAdapter extends RecyclerView.Adapter<SimpleRecyclerAdapter.VersionViewHolder> { 

//from this I would like to execute getData class 

} 

public class GetData extends AsyncTask<>{ 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 

    } 

    @Override 
    protected Void doInBackground(Void... voids) { 

     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     super.onPostExecute(aVoid); 
     recyclerView.setAdapter(new SimpleRecyclerAdapter()); 
    } 
} 
Verwandte Themen