2016-07-19 17 views
-2

Ich wünschte, ich habe die informationen von einer website innerhalb eines fragments meine liste zeigt den folgenden code: ................. ........................................wie mylist in aktivität zu fragmentieren android

Wie Sie in der sehen können Aktivität der Arbeit, die ich getan habe ist ich will es in meinem Mund homefragment angezeigt, bitte führen Sie mich

+1

So..you der Inhalt Ihrer Aktivität wollen auf einem [Fragment] angezeigt werden (https://developer.android.com/guide/components /fragments.html)? Hast du den Artikel gelesen, auf den ich zeige? Hast du noch etwas anderes versucht? Zeig uns deine Forschung. –

+0

Bitte geben Sie nur den Code ein, der zur Reproduktion des Problems erforderlich ist. http://StackOverflow.com/Help/Mcve –

+0

//So .. möchten Sie den Inhalt Ihrer Aktivität auf einem Fragment angezeigt werden? ja – MrErfan

Antwort

0

Sie haben zwei Registerkarten in Ihrer Aktivität (Home und New) richtig? Und möchtest du den Inhalt im Home-Fragment anzeigen? Wenn Sie das meinen:

  1. Führen Sie die AsyncTask in der HomeFragment-Klasse aus. Und führen Sie die AsyncTask in OnCreateView() Methode oder OnViewCreated() Methode. Ich sehe keine execute-Anweisung in dem Code, den Sie eingefügt haben.

2.There ist keine Notwendigkeit, etwas in AsyncTask Teil zu ändern, aber wenn Sie „dies“ für Kontext verwendet haben, getActivity() an seiner Stelle verwendet werden.

3.Keep Navigationsleiste Teil des Codes und Elemente der Symbolleiste Code in der Tätigkeit selbst. (Eg.onOptionsItemSelected(), onCreateOptionsMenu() usw.)

4.Don 't vergessen Adapter Klasse HomeFragment zu bewegen.

Ich denke, das hilft.

Ich habe Ihren Code bearbeitet, um zu sehen, ob das funktioniert. public class HomeFragment erstreckt Fragment {

public HomeFragment() { 
    // Required empty public constructor 
} 

private ListView lv; 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    lv = (ListView) getActivity().findViewById(R.id.lv); 
    new mytask().execute("http://musiqikurdi.com/api/get_recent_posts/"); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_home,container,false); 

    return rootView; 
} 

public class mytask extends AsyncTask<String,String,List<MusicModel>> { 

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

     HttpURLConnection connection = null; 
     BufferedReader reader = null; 
     try { 
      URL url = new URL(params[0]); 
      connection = (HttpURLConnection) url.openConnection(); 
      connection.connect(); 

      InputStream stream = connection.getInputStream(); 
      reader = new BufferedReader(new InputStreamReader(stream)); 

      StringBuffer 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("posts"); 
      StringBuffer finalbufferData = new StringBuffer(); 


      List<MusicModel> musicModelList = new ArrayList<>(); 

      for(int i=0; i < parentarray.length(); i++) { 
       JSONObject finalobject = parentarray.getJSONObject(i); 
       MusicModel musicModel = new MusicModel(); 
       musicModel.setId(finalobject.getString("id")); 
       musicModel.setTitle(finalobject.getString("title").replaceAll("[\\&#8211;]", "")); 
       musicModel.setUrl(finalobject.getString("url").replaceAll("[\\&#8211;]", "")); 
       musicModel.setDate(finalobject.getString("date").replaceAll("[\\&#8211;]", "")); 

       List<MusicModel.category> cateList = new ArrayList<>(); 
       for(int j = 0; j < finalobject.getJSONArray("categories").length(); j++) 
       { 
        MusicModel.category cate = new MusicModel.category(); 
        cate.setCateTitle(finalobject.getJSONArray("categories").getJSONObject(j).getString("title")); 
        cateList.add(cate); 
       } 
       musicModel.setListCategory(cateList); 
       musicModelList.add(musicModel); 
      } 

      return musicModelList; 

     } 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<MusicModel> s) { 
     super.onPostExecute(s); 
     MusicAdapter adapter = new MusicAdapter(getActivity(),R.layout.row,s); 
     lv.setAdapter(adapter); 
    } 
} 
public class MusicAdapter extends ArrayAdapter { 
    private List<MusicModel> musicModelList; 
    private int resource; 
    private LayoutInflater inflater; 
    public MusicAdapter(Context context, int resource, List<MusicModel> objects) { 
     super(getActivity(), resource, objects); 
     musicModelList = objects; 
     this.resource = resource; 
     inflater = (LayoutInflater) getActivity().getSystemService(getActivity().LAYOUT_INFLATER_SERVICE); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if(convertView == null) 
     { 
      convertView = inflater.inflate(R.layout.row,null); 
     } 
     ImageView img; 
     TextView txt1; 
     TextView txt2; 
     TextView txt3; 

     img = (ImageView)convertView.findViewById(R.id.img); 
     txt1 = (TextView)convertView.findViewById(R.id.txt1); 
     txt2 = (TextView)convertView.findViewById(R.id.txt2); 
     txt3 = (TextView)convertView.findViewById(R.id.txt3); 

     txt1.setText(musicModelList.get(position).getId()); 
     txt2.setText(musicModelList.get(position).getTitle()); 
     return convertView; 
    } 
} 

}

+0

Fügen Sie auch Ihren MainActivity-Code hinzu (bearbeitet). –

Verwandte Themen