Java 如何在活动中显示mylist以分割android

Java 如何在活动中显示mylist以分割android,java,android,json,android-fragments,fragment,Java,Android,Json,Android Fragments,Fragment,我希望我能从一个显示我的列表的片段中的站点获得信息 请参阅以下代码: 正如您在活动中所看到的,我所做的工作是“我希望它在我的嘴里”homefragment显示,请指导我您的活动中有两个选项卡(主页和新建),对吗?你想在主片段中显示内容吗?如果这就是你的意思 在HomeFragment类中执行异步任务。并在OnCreateView()方法或OnViewCreated()方法中执行异步任务。我在粘贴的代码中没有看到execute语句 2.无需更改AsyncTask部分中的任何内容,但如果您已将“t

我希望我能从一个显示我的列表的片段中的站点获得信息 请参阅以下代码:


正如您在活动中所看到的,我所做的工作是“我希望它在我的嘴里”homefragment显示,请指导我您的活动中有两个选项卡(主页和新建),对吗?你想在主片段中显示内容吗?如果这就是你的意思

  • 在HomeFragment类中执行异步任务。并在OnCreateView()方法或OnViewCreated()方法中执行异步任务。我在粘贴的代码中没有看到execute语句
  • 2.无需更改AsyncTask部分中的任何内容,但如果您已将“this”用作上下文,请使用getActivity()

    3.将导航抽屉部件的代码和工具栏项目代码保留在活动本身中。(例如OnOptions ItemSelected()、OnCreateOptions Menu()等)

    4.不要忘记将适配器类移动到HomeFragment

    我认为这有帮助

    我已经编辑了你的代码,看看这是否有效。 公共类HomeFragment扩展了片段{

    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;
        }
    }
    
    public homepragment(){
    //必需的空公共构造函数
    }
    私有ListView lv;
    @凌驾
    已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
    super.onViewCreated(视图,savedInstanceState);
    lv=(ListView)getActivity().findViewById(R.id.lv);
    新建mytask()。执行(“http://musiqikurdi.com/api/get_recent_posts/");
    }
    @凌驾
    创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
    视图组rootView=(视图组)充气器。充气(R.layout.fragment\u home,container,false);
    返回rootView;
    }
    公共类mytask扩展了AsyncTask{
    @凌驾
    受保护列表doInBackground(字符串…参数){
    HttpURLConnection=null;
    BufferedReader reader=null;
    试一试{
    URL=新URL(参数[0]);
    connection=(HttpURLConnection)url.openConnection();
    connection.connect();
    InputStream=connection.getInputStream();
    reader=新的BufferedReader(新的InputStreamReader(流));
    StringBuffer=新的StringBuffer();
    字符串行=”;
    而((line=reader.readLine())!=null)
    {
    buffer.append(行);
    }
    字符串finalJSON=buffer.toString();
    JSONObject parentobject=新的JSONObject(finalJSON);
    JSONArray parentarray=parentobject.getJSONArray(“posts”);
    StringBuffer finalbufferData=新的StringBuffer();
    List musicModelList=new ArrayList();
    对于(int i=0;i

    }

    那么..您希望活动的内容显示在屏幕上吗?你看过我指的那篇文章了吗?你还试过别的吗?让我们看看你的研究。请只包括t