public class FragmentMe extends Fragment { private GridView gv1; private GridView gv2; private GvBean gb; private List<String> list1; private List<String> list2; private MyGv1Adapter adapter1; private MyGv2Adapter adapter2; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.frag_me,null); gv1 = view.findViewById(R.id.ya_me_gv1); gv2 = view.findViewById(R.id.ya_me_gv2); list1 = new ArrayList<String>(); list2 = new ArrayList<String>(); initData(); return view; } private void initData() { new AsyncTask<String,Integer,String>(){ @Override protected void onPostExecute(String s) { initGv(); super.onPostExecute(s); } @Override protected String doInBackground(String... strings) { getData(); return null; } }.execute(); } private void initGv() { for (int i = 0; i < gb.getChannel().size(); i++) { list1.add(gb.getChannel().get(i).getChannel_me()); list2.add(gb.getChannel().get(i).getChannel_more()); } adapter1 = new MyGv1Adapter(); gv1.setAdapter(adapter1); adapter2 = new MyGv2Adapter(); gv2.setAdapter(adapter2); gv1.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { list2.add(list1.get(i)); list1.remove(i); adapter1.notifyDataSetChanged(); adapter2.notifyDataSetChanged(); } }); gv2.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { list1.add(list2.get(i)); list2.remove(i); adapter1.notifyDataSetChanged(); adapter2.notifyDataSetChanged(); } }); } private void getData() { try { URL url = new URL("http://"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); int code = conn.getResponseCode(); if(code == 200){ Gson gson = new Gson(); gb = gson.fromJson(new InputStreamReader(conn.getInputStream(),"UTF-8"),GvBean.class); } } catch (Exception e) { e.printStackTrace(); } } class MyGv1Adapter extends BaseAdapter{ @Override public int getCount() { if(list1 != null){ return list1.size(); } return 0; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { TextView tv1 = new TextView(getActivity()); tv1.setTextSize(20); //tv1.setTextColor(); tv1.setText(list1.get(i)); return tv1; } } class MyGv2Adapter extends BaseAdapter{ @Override public int getCount() { if(list2 != null){ return list2.size(); } return 0; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { TextView tv2 = new TextView(getActivity()); tv2.setTextSize(20); tv2.setText(list2.get(i)); return tv2; } }