Merhaba, sliding menu içerisindeki fragmentlara Json veri çekmek istiyorum fakat hata alıyorum. Normal de çekebiliyorum datayı fakat işin içine fragment girince aynı kodlar log da hata vermiyor ancak uygulama kendini durduruyor.

Fragment içine nasıl verileri çekebilirim? Teşekkürler

public class DahiliyeFragment extends Fragment {

public DahiliyeFragment() {
    // Required empty public constructor
}
private ListView lvPersonel;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

new JSONTask().execute("https://api.myjson.com/bins/4hopr");

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( getActivity()).defaultDisplayImageOptions(defaultOptions)
        .build();
ImageLoader.getInstance().init(config); // Do it on Application start

lvPersonel = (ListView) getView().findViewById(R.id.lvPersonel);

    return inflater.inflate(R.layout.fragment_dahiliye, container, false);
}

public class JSONTask extends AsyncTask<string,string,list<personelmodel>> {

@Override
protected List<PersonelModel> doInBackground(String... params) {

    HttpURLConnection connection = null;
    BufferedReader reader=null;
    InputStream stream;
    StringBuffer buffer;
    try {
        URL url = new URL(params[0]); //bağlantı
        connection = (HttpURLConnection) url.openConnection();
        connection.connect();

        stream = connection.getInputStream();
        reader = new BufferedReader(new InputStreamReader(stream)); //okuma yapıyor
        buffer = new StringBuffer();
        String line = "";
        while ((line = reader.readLine()) != null)
        {
            buffer.append(line);

        }

        String finalJson = buffer.toString();
        JSONObject parentObject = new JSONObject(finalJson);

        JSONArray parentArray = parentObject.getJSONArray("personeller"); // json dizisini alır
        //StringBuffer finalBufferedData = new StringBuffer();
        List<PersonelModel> personelModelList = new ArrayList<>(); //json içerisindeki ana dizinin tüm elemanlarını tutmak için

        for(int i=0; i<parentArray.length(); i++)

        {
            JSONObject finalobject = parentArray.getJSONObject(i); //dizinin elemanları için

                /*String unvan = finalobject.getString("unvan");// json daki nesnenin adını tanıtarak yeni bi string nesnesi oluşturduk
                String ad = finalobject.getString("ad");
                String soyad = finalobject.getString("soyad");
                String oda = finalobject.getString("oda");
                finalBufferedData.append(unvan+ "-" +ad+ "-" +soyad+ "-"+oda+"\\n");*/ //döngünün içinde aldığı her veriyi finalBufferedData nn içine yükleyecek

            PersonelModel personelModel = new PersonelModel();
            personelModel.setUnvan(finalobject.getString("unvan"));
            personelModel.setAd(finalobject.getString("ad"));
            personelModel.setSoyad(finalobject.getString("soyad"));
            personelModel.setOda(finalobject.getString("oda"));
            personelModel.setResim(finalobject.getString("resim"));

            personelModelList.add(personelModel);

            //finalBufferedData.append(movieName + "-" +year+ "\\n");

        }
        //return buffer.toString(); //post execute yolluyor
        //return movieName + "-" + year;
        //return  finalBufferedData.toString();

        return personelModelList;

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    } finally {
        if(connection != null)
        {connection.disconnect();}
        try {
            if(reader != null){
                reader.close();}
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return null;
}

@Override
protected void onPostExecute(List<PersonelModel> result) {
    super.onPostExecute(result);
    // tvData.setText(result);
    // TODO need to set to the list
    PersonelAdapter adapter = new PersonelAdapter(getActivity(),R.layout.row, result);
    lvPersonel.setAdapter(adapter);

}

}

public class PersonelAdapter extends ArrayAdapter { private List<personelmodel> personelModelList; private int resource; private LayoutInflater inflater; public PersonelAdapter(Context context, int resource, List<personelmodel> objects) { super(context, resource, objects); personelModelList = objects; this.resource = resource; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder = null;
    if(convertView == null)
    {
        holder = new ViewHolder();
        convertView = inflater.inflate(resource, null);
        holder.ivResim = (ImageView)convertView.findViewById(R.id.ivResim); // row layoutunda old için convertview den aldk
        holder.tvAd = (TextView)convertView.findViewById(R.id.tvAd);
        holder.tvSoyad = (TextView)convertView.findViewById(R.id.tvSoyad);
        holder.tvOda = (TextView)convertView.findViewById(R.id.tvOda);
        holder.tvUnvan = (TextView)convertView.findViewById(R.id.tvUnvan);

        convertView.setTag(holder);
    }
    else
    {
        holder = (ViewHolder) convertView.getTag();
    }

    final ProgressBar progressBar = (ProgressBar)convertView.findViewById(R.id.progressBar);

    // Then later, when you want to display image
    ImageLoader.getInstance().displayImage("http://i.hizliresim.com/go7bpQ.jpg", holder.ivResim, new ImageLoadingListener() {
        @Override
        public void onLoadingStarted(String s, View view) {
            progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public void onLoadingFailed(String s, View view, FailReason failReason) {
            progressBar.setVisibility(View.GONE);
        }

        @Override
        public void onLoadingComplete(String s, View view, Bitmap bitmap) {
            progressBar.setVisibility(View.GONE);
        }

        @Override
        public void onLoadingCancelled(String s, View view) {
            progressBar.setVisibility(View.GONE);
        }
    });

    holder.tvUnvan.setText("Unvan:   " + personelModelList.get(position).getUnvan());
    holder.tvAd.setText("Ad:  " + personelModelList.get(position).getAd());
    holder.tvSoyad.setText("Soyad:   " + personelModelList.get(position).getSoyad());
    holder.tvOda.setText("Oda:    " + personelModelList.get(position).getOda());

    return convertView;
}

}

class ViewHolder

{

private ImageView ivResim;
private TextView tvAd;
private TextView tvSoyad;
private TextView tvOda;
private TextView tvUnvan;

}

}

soruldu: 04 Ağu, 06:16

AlariceVanAlen's gravatar image

AlariceVanAlen
01
cevap kabul oranı: 0%

Bu soruya ilk cevap veren sen ol!
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×39
×16

Soruldu: 04 Ağu, 06:16

Görüntüleme: 113 kez

Son güncelleme: 04 Ağu, 06:16

powered by BitNami OSQA