频道管理

来源:互联网 发布:人工智能小炮预测下载 编辑:程序博客网 时间:2024/05/17 09:44

 Mainactivity

 
  public class MainActivity extends AppCompatActivity {
    //全局变量
    private GridView gv1;
    private GridView gv2;
    List<String> list1;
    List<String> list2;
    private Myadapter adapter1;
    private Myadapters adapter2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //找控件
        gv1 = (GridView) findViewById(R.id.gv1);
        gv2 = (GridView) findViewById(R.id.gv2);

        initData();
        //gv1的点击事件
      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的点击事件
        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();
            }
        });

    }

    //异步任务
    public void initData() {
        new AsyncTask<String, String, String>() {
            @Override
            protected String doInBackground(String... strings) {
                getData();
                return null;
            }

            @Override
            protected void onPostExecute(String s) {

                //创建gv1适配器
                adapter1 = new Myadapter();
                gv1.setAdapter(adapter1);
                //刷新gv1适配器
               adapter1.notifyDataSetChanged();

                //创建gv2适配器
                adapter2 = new Myadapters();
                gv2.setAdapter(adapter2);
                //刷新gv2适配器
                adapter2.notifyDataSetChanged();
                super.onPostExecute(s);
            }
        }.execute();

    }



    //网络加载Title数据
   public void getData() {
        try {
            URL url = new URL("http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=channel");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            int code = conn.getResponseCode();
            if (code==200){
                Gson gson=new Gson();
                MaxTitle maxTitle = gson.fromJson(new InputStreamReader(conn.getInputStream()), MaxTitle.class);
                 //创建集合
                 list1=new ArrayList<String>();
                list2=new ArrayList<String>();

                for (int i = 0; i <maxTitle.getChannel().size(); i++) {
                list1.add(maxTitle.getChannel().get(i).getChannel_me());
                    list2.add(maxTitle.getChannel().get(i).getChannel_more());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
   }
    //创建适配器
    public class Myadapter extends BaseAdapter{
        @Override
        public int getCount() {
            return list1.size();
        }
        @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) {
            ViewHolder holder;
            if (view==null){
              view=View.inflate(MainActivity.this,R.layout.item,null);
                holder=new ViewHolder();
                holder.tv1=(TextView) view.findViewById(R.id.tv1);
                holder.tv2=(TextView) view.findViewById(R.id.tv2);
                view.setTag(holder);
            }else {
                holder= (ViewHolder) view.getTag();
            }
            holder.tv2.setText(list1.get(i));

            return view;
        }
    }
    //创建适配器
    public class Myadapters extends BaseAdapter{
        @Override
        public int getCount() {
            return list2.size();
        }

        @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) {
            ViewHolder holder;
            if (view==null){
                view=View.inflate(MainActivity.this,R.layout.item,null);
                holder=new ViewHolder();
                holder.tv1=(TextView) view.findViewById(R.id.tv1);
                holder.tv2=(TextView) view.findViewById(R.id.tv2);
                view.setTag(holder);
            }else {
                holder= (ViewHolder) view.getTag();
            }

            holder.tv2.setText(list2.get(i));

            return view;
        }
    }

   public static class ViewHolder{
       TextView tv1,tv2;
   }
}

  Layout布局

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
   >
   <LinearLayout
       android:layout_width="match_parent"
       android:layout_height="200dp"
       android:orientation="vertical"
       >
       <TextView
           android:id="@+id/tv1"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:text="更多新闻"
           />
       <GridView
           android:id="@+id/gv1"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:numColumns="7"

           ></GridView>

   </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="vertical"
        android:layout_marginTop="50dp"
        >
        <TextView
            android:id="@+id/tv2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="更多频道"
            />
        <GridView
            android:id="@+id/gv2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:numColumns="7"

            ></GridView>

    </LinearLayout>


</LinearLayout>

item布局

 
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
   <TextView
       android:id="@+id/tv1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>