上下切换(简化版)

本文介绍了一个使用Android GridView和自定义适配器实现的上下数据切换功能。通过点击顶部或底部的条目,可以将条目从一个列表移动到另一个列表,并实时更新显示。此功能适用于需要灵活管理列表数据的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上下切换(简化版)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;

import com.bw.wangqing20181115.adapter.MyBottomAdapter;
import com.bw.wangqing20181115.adapter.MyTopAdapter;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private GridView top_gridview;
private GridView bottom_gridview;
private List<String> top;
private List<String> bottom;
private MyTopAdapter myTopAdapter;
private MyBottomAdapter myBottomAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化控件
    top_gridview = findViewById(R.id.top_gridview);
    bottom_gridview = findViewById(R.id.bottom_gridview);
    top = new ArrayList<>();
    bottom = new ArrayList<>();
    //添加数据
    for (int i=1;i<=10;i++){
        top.add("头部"+i);
    }
    for (int i=1;i<=20;i++){
        bottom.add("底部"+i);
    }
    //创建适配器
    myTopAdapter = new MyTopAdapter(MainActivity.this, top);
    myBottomAdapter = new MyBottomAdapter(MainActivity.this, bottom);
    //设置适配器
    top_gridview.setAdapter(myTopAdapter);
    bottom_gridview.setAdapter(myBottomAdapter);
    top_gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //上面删除,下面添加
            String topstring = top.get(i);
            top.remove(topstring);
            bottom.add(topstring);
            //刷新适配器
            myTopAdapter.notifyDataSetChanged();
            myBottomAdapter.notifyDataSetChanged();
        }
    });
    bottom_gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //上面删除,下面添加
            String topstring = bottom.get(i);
            top.add(topstring);
            bottom.remove(topstring);
            //刷新适配器
            myTopAdapter.notifyDataSetChanged();
            myBottomAdapter.notifyDataSetChanged();
        }
    });
}

}

//优化版适配器(底部数据同上)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;

import com.bw.wangqing20181115.adapter.MyBottomAdapter;
import com.bw.wangqing20181115.adapter.MyTopAdapter;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

private GridView top_gridview;
private GridView bottom_gridview;
private List<String> top;
private List<String> bottom;
private MyTopAdapter myTopAdapter;
private MyBottomAdapter myBottomAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化控件
    top_gridview = findViewById(R.id.top_gridview);
    bottom_gridview = findViewById(R.id.bottom_gridview);
    top = new ArrayList<>();
    bottom = new ArrayList<>();
    //添加数据
    for (int i=1;i<=10;i++){
        top.add("头部"+i);
    }
    for (int i=1;i<=20;i++){
        bottom.add("底部"+i);
    }
    //创建适配器
    myTopAdapter = new MyTopAdapter(MainActivity.this, top);
    myBottomAdapter = new MyBottomAdapter(MainActivity.this, bottom);
    //设置适配器
    top_gridview.setAdapter(myTopAdapter);
    bottom_gridview.setAdapter(myBottomAdapter);
    top_gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //上面删除,下面添加
            String topstring = top.get(i);
            top.remove(topstring);
            bottom.add(topstring);
            //刷新适配器
            myTopAdapter.notifyDataSetChanged();
            myBottomAdapter.notifyDataSetChanged();
        }
    });
    bottom_gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            //上面删除,下面添加
            String topstring = bottom.get(i);
            top.add(topstring);
            bottom.remove(topstring);
            //刷新适配器
            myTopAdapter.notifyDataSetChanged();
            myBottomAdapter.notifyDataSetChanged();
        }
    });
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值