频道管理
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>