mettre en œuvre des AsyncTask Fragment android
J'ai une activité qui, sortie de données json à partir d'une liste. Mais maintenant, je veux la mettre en œuvre dans un fragment.
Dans ce fragment, je veux voir cela comme une gridview. Et les deux fichiers fonctionne très bien. mais quand j'ai essayé de mettre en œuvre des AsyncTask j'obtient plusieurs redflags comme inaccessible code. Quelqu'un peut-il m'aider, s'il vous plaît?
Édité: Nouveau
public class SalesFragment extends Fragment {
GridView gridView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View gv = inflater.inflate(R.layout.hot_sales, null);
gridView = (GridView) gv.findViewById(R.id.grid_view);
bindGridview();
return gv;
}
public void bindGridview() {
new MyAsyncTask(getActivity(),gridView).execute("");
}
class MyAsyncTask extends AsyncTask<String, String, String> {
GridView mGridView;
Activity mContext;
Response response;
public MyAsyncTask(Activity context,GridView gview) {
this.mGridView=gview;
this.mContext=context;
}
protected String doInBackground(String... params) {
File file = new File( Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/sample.txt");
if(file.exists()) {
try{
Reader inputStreamReader = new InputStreamReader(new FileInputStream(file));
Gson gson = new Gson();
this.response = gson.fromJson(inputStreamReader, Response.class);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (@SuppressWarnings("hiding") IOException e){
e.printStackTrace();
}
}else{
System.out.println("Error");
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
//List<HashMap<String,String>> aList = new ArrayList<HashMap<String,String>>();
for(Sales sales : this.response.sales){
HashMap<String, String> hm = new HashMap<String,String>();
if (sales.getCategories1().contains("12")){
//hm.put("sale_title", "" + sales.getShort_title());
for(Shop shop : this.response.shops){
String image_file = new String( Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/images/" + shop.getImage());
if(shop.getId().equals(sales.getShop_id())){
hm.put("shop_image", image_file );
System.out.println(shop_image);
}
}
if(hm.size()>0){
gridView.setAdapter(new ImageAdapter(MainActivity.this,R.layout.grid_layout , imgArray, titleArray));
}
}
}
}
}
}
Comment appeler des images dans gridview sur l'image ci-dessus? S'il vous plaît aider.
Peut-être poster un peu de code? N'importe quel nombre de problèmes peuvent être en cause.
postez votre code mis en œuvre ici............
Piyush Gupta & blaffie: le code ajouté maintenant. Je veux faire la même chose que l'activité dans le fragment.
signifie que, Comme dans SalesActivity les fonctions qui sont effectuées,Vous voulez ce Fragment?
postez votre code mis en œuvre ici............
Piyush Gupta & blaffie: le code ajouté maintenant. Je veux faire la même chose que l'activité dans le fragment.
signifie que, Comme dans SalesActivity les fonctions qui sont effectuées,Vous voulez ce Fragment?
OriginalL'auteur Kabe | 2013-09-01
Vous devez vous connecter pour publier un commentaire.
Il n'est pas facile pour caisse asyntask dans le fragment
dans votre fragment de code sur
activityCreateview
getActivity()
est une méthode pour communiquer avec fragment et de l'activitédans asynstak sur le post
ici est
avant de l'extraction de données modèle comme
remplir tableau liste avec les données requises
puis
utiliser hachage de la carte dans l'adaptateur et attribuer des images avec la position de
ensemble de données et récupère la valeur de modèle
vous pouvez passer de l'image ou plusieurs images dans le constructeur de l'adaptateur j'ai édité le code voir ci-dessus
il n'est pas travaillé. obtenir redflags sur mcontext et ImageAdapter.
Vous pouvez poster l'image de l'adaptateur de code
Voir mon édité code sur le dessus
OriginalL'auteur Sumeet kumar