//布局点击进入频道管理页面
<?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"
tools:context="com.bwei.www.channelonly.MainActivity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="50dp">
<android.support.design.widget.TabLayout
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="50dp"
android:id="@+id/tbl"
></android.support.design.widget.TabLayout>
<ImageView
android:id="@+id/show_all"
android:src="@drawable/btn_add"
android:layout_width="30dp"
android:layout_height="30dp" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
//Activity页面
import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private TabLayout tbl;
private ImageView showAll;
private ViewPager vp;
private List<String> stringList;
private List<Fragment> fragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tbl = findViewById(R.id.tbl);
showAll = findViewById(R.id.show_all);
vp = findViewById(R.id.vp);
stringList = new ArrayList<>();
stringList.add("头条");
stringList.add("社会");
stringList.add("国内");
stringList.add("国际");
stringList.add("娱乐");
stringList.add("体育");
stringList.add("军事");
stringList.add("科技");
stringList.add("财经");
stringList.add("时尚");
tbl.setTabMode(TabLayout.MODE_SCROLLABLE);
fragmentList = new ArrayList<>();
for (String s : stringList) {
tbl.addTab(tbl.newTab().setText(s));
}
vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return super.getPageTitle(position);
}
});
tbl.setupWithViewPager(vp);
final ArrayList<String> arrayList = new ArrayList<>();
arrayList.addAll(stringList);
//点击加号 跳转频道管理页面
showAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,ChannelActivity.class);
Bundle bundle = new Bundle();
bundle.putStringArrayList("array",arrayList);
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
//创建一个布局页面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
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"
tools:context="com.bwei.www.channelonly.ChannelActivity">
<Button
android:text="完成"
android:textSize="20sp"
android:id="@+id/btn_finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:padding="20dp"
android:textSize="20sp"
android:text="我的频道"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txt_edit"
android:textSize="20sp"
android:gravity="center"
android:layout_alignParentRight="true"
android:textColor="#000000"
android:layout_width="wrap_content"
android:text="编辑"
android:paddingRight="15sp"
android:layout_height="wrap_content" />
</RelativeLayout>
<GridView
android:padding="20dp"
android:id="@+id/mygvChannel"
android:horizontalSpacing="10dp"
android:numColumns="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</GridView>
<TextView
android:text="频道推荐"
android:textSize="20sp"
android:padding="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<GridView
android:padding="20dp"
android:id="@+id/othergvChannel"
android:numColumns="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></GridView>
</LinearLayout>
//写两个适配器
//我的
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class ChannelActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnFinish;
private TextView txtEdit;
private GridView myChannel;
private GridView otherChannel;
private MyChannelAdapter madapter;
private List<String> recommond;
private OtherAdapter otherAdapter;
private ArrayList<String> array;
private boolean isEdited = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_channel);
//找控件
btnFinish = findViewById(R.id.btn_finish);
txtEdit = findViewById(R.id.txt_edit);
myChannel = findViewById(R.id.mygvChannel);
otherChannel = findViewById(R.id.othergvChannel);
//接收值
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
array = bundle.getStringArrayList("array");
//给频道管理写适配器
madapter = new MyChannelAdapter(this, array);
myChannel.setAdapter(madapter);
recommond = new ArrayList<>();
//给推荐频道写数据
recommond.add("特卖");
recommond.add("直播");
recommond.add("房产");
recommond.add("历史");
recommond.add("旅游");
//给推荐频道添加设置适配器
otherAdapter = new OtherAdapter(this,recommond);
otherChannel.setAdapter(otherAdapter);
MyChannelAdapter.OnDeleteItemClick listener = new MyChannelAdapter.OnDeleteItemClick() {
@Override
public void OnDeleteItemClick(int position) {
recommond.add(array.get(position));
array.remove(position);
madapter.notifyDataSetChanged();
otherAdapter.notifyDataSetChanged();
}
};
madapter.setOnDeleteItemClick(listener);
// 推荐频道里 添加到 我的频道
otherChannel.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
array.add(recommond.get(position));
madapter.notifyDataSetChanged();
recommond.remove(position);
otherAdapter.notifyDataSetChanged();
}
});
//点击事件
txtEdit.setOnClickListener(this);
btnFinish.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.txt_edit:
isEdited = !isEdited;
if (isEdited){
txtEdit.setText("完成");
}else {
txtEdit.setText("编辑");
}
madapter.setEdited(isEdited);
break;
case R.id.btn_finish:
finish();
break;
}
}
}
//另一个适配器
package com.example.lenovo.pingdao;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
public class OthertAdapter extends BaseAdapter{
private boolean isEdited = false;
private Context context;
private List<String> list;
public OthertAdapter(Context context, List<String> list) {
this.context = context;
this.list = list;
}
public void setEdited(boolean edited){
isEdited=edited;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int i) {
return list.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder = null;
if (view == null){
holder = new ViewHolder();
view = View.inflate(context,R.layout.item_other,null);
holder.txtChannel = view.findViewById(R.id.txt_channel);
view.setTag(holder);
}else {
holder = (ViewHolder) view.getTag();
}
holder.txtChannel.setText(list.get(i));
return view;
}
class ViewHolder{
private TextView txtChannel;
}
}
//我的适配器
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by asus on 2018/9/20.
*/
public class MyChannelAdapter extends BaseAdapter{
//提供一个接口
public interface OnDeleteItemClick{
void OnDeleteItemClick(int position);
}
//接口实例化
private OnDeleteItemClick listener;
//提供初始化接口
public void setOnDeleteItemClick(OnDeleteItemClick listener){
this.listener=listener;
}
private Context context;
private ArrayList<String> list;
public MyChannelAdapter(Context context, ArrayList<String> list) {
this.context = context;
this.list = list;
}
private boolean isEdited = false;
public void setEdited(boolean edited) {
isEdited = edited;
notifyDataSetChanged();
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView ==null){
holder = new ViewHolder();
convertView = View.inflate(context,R.layout.item_mychannel,null);
holder.txtChannel = convertView.findViewById(R.id.txt_channel);
holder.del = convertView.findViewById(R.id.del);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtChannel.setText(list.get(position));
//判断是否 显示和隐藏 删除图片
if (isEdited){
holder.del.setVisibility(View.VISIBLE);
}else {
holder.del.setVisibility(View.GONE);
}
holder.del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.OnDeleteItemClick(position);
}
});
return convertView;
}
class ViewHolder{
private TextView txtChannel;
private ImageView del;
}
}
//布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="horizontal"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:paddingTop="5dp"
android:id="@+id/del"
android:src="@drawable/btn_add"
android:layout_width="25dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/channel"
android:textColor="#000000"
android:textSize="22sp"
android:text="删除"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<?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">
<TextView
android:id="@+id/txt_channel"
android:text="删除"
android:textSize="22sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/del"
android:src="@drawable/img_delete"
android:layout_width="18dp"
android:layout_height="18dp" />
</LinearLayout>
//布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:orientation="vertical"
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"
tools:context="com.bwei.www.channelonly.ChannelActivity">
<Button
android:text="完成"
android:textSize="20sp"
android:id="@+id/btn_finish"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:padding="20dp"
android:textSize="20sp"
android:text="我的频道"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/txt_edit"
android:textSize="20sp"
android:gravity="center"
android:layout_alignParentRight="true"
android:textColor="#000000"
android:layout_width="wrap_content"
android:text="编辑"
android:paddingRight="15sp"
android:layout_height="wrap_content" />
</RelativeLayout>
<GridView
android:padding="20dp"
android:id="@+id/mygvChannel"
android:horizontalSpacing="10dp"
android:numColumns="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</GridView>
<TextView
android:text="频道推荐"
android:textSize="20sp"
android:padding="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<GridView
android:padding="20dp"
android:id="@+id/othergvChannel"
android:numColumns="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></GridView>
</LinearLayout>