安卓开发期中小测

这学期选了安卓应用开发,这个课的老师操着一口浓重的方言,再配上带有电流声的麦,我无论是坐在第一排还是最后一排,我根本听不懂这个老师在说什么,如果不是因为这个老师是黄皮肤黑眼睛,我真的怀疑是尼加拉瓜的老师来给我们上课了。而且这个老师留的作业巨多,我还没有太好的Java基础,导致我有的逻辑代码根本不会写。为了应对这个问题,我打算整理一下写过的Java代码,以便考试的时候找到直接用。

sampleAdapter的实现

public class MainActivity extends AppCompatActivity {

    private ListView listview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listview = (ListView)findViewById(R.id.lv_1);
        //这里应该是获取标签
        SimpleAdapter simpleAdapter = new SimpleAdapter(this,putData(),R.layout.layout_list_item,
                new String[]{"tv_1","iv","tv_2","tv_3","tv_4","tv_5"},new int[]{R.id.tv_1,R.id.iv,R.id.tv_2,R.id.tv_3,R.id.tv_4,R.id.tv_5});
        listview.setAdapter(simpleAdapter);
    }
	//输入数据
    public List<Map<String,Object>> putData(){
        List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
        Map<String,Object> map1 = new HashMap<String,Object>();
        map1.put("tv_1", "16201");
        map1.put("tv_2", "505313");
        map1.put("tv_3", "移动应用开发技术");
        map1.put("tv_4", "尚老师");
        map1.put("tv_5", "学校课表班课");
        map1.put("iv", R.drawable.pic);

        Map<String,Object> map2 = new HashMap<String,Object>();
        map2.put("tv_1", "17104");
        map2.put("tv_2", "605454");
        map2.put("tv_3", "移动应用开发技术");
        map2.put("tv_4", "尚老师");
        map2.put("tv_5", "学校课表班课");
        map2.put("iv", R.drawable.pic);

        Map<String,Object> map3 = new HashMap<String,Object>();
        map3.put("tv_1", "17101");
        map3.put("tv_2", "939789");
        map3.put("tv_3", "java程序设计");
        map3.put("tv_4", "尚老师");
        map3.put("tv_5", "学校课表班课");
        map3.put("iv", R.drawable.pic);

        Map<String,Object> map4 = new HashMap<String,Object>();
        map4.put("tv_1", "16101");
        map4.put("tv_2", "952532");
        map4.put("tv_3", "移动应用开发技术");
        map4.put("tv_4", "尚老师");
        map4.put("tv_5", "学校课表班课");
        map4.put("iv", R.drawable.pic);

        Map<String,Object> map5 = new HashMap<String,Object>();
        map5.put("tv_1", "16104");
        map5.put("tv_2", "449884");
        map5.put("tv_3", "移动应用开发技术");
        map5.put("tv_4", "尚老师");
        map5.put("tv_5", "学校课表班课");
        map5.put("iv", R.drawable.pic);

        list.add(map1);
        list.add(map2);
        list.add(map3);
        list.add(map4);
        list.add(map5);

//设置点击事件
        listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int p, long id) {
            //用Toast显示课程名
                String name = list.get(p).get("tv_3").toString();
                Toast.makeText(getApplicationContext(), "课程名:" + name, Toast.LENGTH_SHORT).show();
            }
        });

        return list;
    }

继承BaseAdapter实现的自定义Adapter

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = findViewById(R.id.lv_1);
//        listView.setAdapter(new MyListAdapter(MainActivity.this));

        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("iv",R.drawable.pic);
        map.put("tv_1", "16201");
        map.put("tv_2", "505313");
        map.put("tv_3", "移动应用开发技术");
        map.put("tv_4", "魏老师");
        map.put("tv_5", "学校课表班课");
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("tv_1", "17104");
        map.put("tv_2", "605454");
        map.put("tv_3", "移动应用开发技术");
        map.put("tv_4", "魏老师");
        map.put("tv_5", "学校课表班课");
        map.put("iv", R.drawable.pic);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("tv_1", "17101");
        map.put("tv_2", "939789");
        map.put("tv_3", "java程序设计");
        map.put("tv_4", "魏老师");
        map.put("tv_5", "学校课表班课");
        map.put("iv", R.drawable.pic);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("tv_1", "16101");
        map.put("tv_2", "952532");
        map.put("tv_3", "移动应用开发技术");
        map.put("tv_4", "魏老师");
        map.put("tv_5", "学校课表班课");
        map.put("iv", R.drawable.pic);
        list.add(map);

        map = new HashMap<String, Object>();
        map.put("tv_1", "16104");
        map.put("tv_2", "449884");
        map.put("tv_3", "移动应用开发技术");
        map.put("tv_4", "魏老师");
        map.put("tv_5", "学校课表班课");
        map.put("iv", R.drawable.pic);
        list.add(map);


        MyListAdapter adapter = new MyListAdapter(this);
        adapter.setList(list);
        listView.setAdapter(adapter);


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//                TextView name = (TextView) findViewById(R.id.tv_3);
                String name = list.get(position).get("tv_3").toString();
                Toast.makeText(getApplicationContext(), "课程名:" + name, Toast.LENGTH_SHORT).show();
            }
        });


    }

}

MyListAdapter.java

public class MyListAdapter extends BaseAdapter {

    List<Map<String,Object>> list;
//    private Context mContext;
    LayoutInflater mLayoutInflater;

    public MyListAdapter(Context context){
//        this.mContext = context;
        mLayoutInflater = LayoutInflater.from(context);
    }

    public void setList(List<Map<String, Object>> list) {
        this.list = list;
    }

    @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(int position, View convertView, ViewGroup parent) {
            View view = mLayoutInflater.inflate(R.layout.layout_list_item,null);

            ImageView iv = (ImageView) view.findViewById(R.id.iv);
            TextView tv_1 = (TextView) view.findViewById(R.id.tv_1);
            TextView tv_2 = (TextView) view.findViewById(R.id.tv_2);
            TextView tv_3 = (TextView) view.findViewById(R.id.tv_3);
            TextView tv_4 = (TextView) view.findViewById(R.id.tv_4);
            TextView tv_5 = (TextView) view.findViewById(R.id.tv_5);


            iv.setImageResource((Integer) list.get(position).get("iv"));
            tv_1.setText((String) list.get(position).get("tv_1"));
            tv_2.setText((String) list.get(position).get("tv_2"));
            tv_3.setText((String) list.get(position).get("tv_3"));
            tv_4.setText((String) list.get(position).get("tv_4"));
            tv_5.setText((String) list.get(position).get("tv_5"));


        return view;
    }
}

以上两种都是基于listView的adapter
接下来是基于RecyclerView的adapter

RecyclerView

public class MainActivity extends AppCompatActivity {
    RecyclerView mRecyclerView;
    MyAdapter mMyAdapter;
    List<Map<String, Object>> mNewsList = new ArrayList<Map<String, Object>>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //找到id
        mRecyclerView = findViewById(R.id.recyclerview);


        //构造数据
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("iv", R.drawable.pic1);
        map.put("tv_title", "安踏(A N T A)安踏男鞋跑步2020春季运动鞋透气休闲舒适百搭");
        map.put("tv_subtitle", "男子跑鞋 | 运动舒适 | 透气休闲");
        map.put("tv_price", "¥169");
        map.put("tv_price_title", "闪购价");
        map.put("tv_little_title", "自营  放心购  领券199减10");
        map.put("tv_comment", "20万条+评价 97%好评");
        mNewsList.add(map);

        map = new HashMap<String, Object>();
        map.put("iv", R.drawable.pic2);
        map.put("tv_title", "安踏男鞋运动鞋男夏季薄款鞋子透气网鞋男士休闲鞋官网旗舰跑步鞋");
        map.put("tv_subtitle", "网面透气 | 防滑耐磨 | 运动休闲百搭");
        map.put("tv_price", "¥159");
        map.put("tv_price_title", "  ");
        map.put("tv_little_title", "京东物流  领券199减10");
        map.put("tv_comment", "20万条+评价 97%好评");
        mNewsList.add(map);

        map = new HashMap<String, Object>();
        map.put("iv", R.drawable.pic3);
        map.put("tv_title", "361度男鞋运动鞋子夏季网面q弹减震软底超轻跑鞋专业马拉松跑步鞋");
        map.put("tv_subtitle", "保暖透气 | 系带设计 | 回弹缓震");
        map.put("tv_price", "¥108");
        map.put("tv_price_title", "秒杀价");
        map.put("tv_little_title", "自营  放心购  满100减10");
        map.put("tv_comment", "20万条+评价 97%好评");
        mNewsList.add(map);

        map = new HashMap<String, Object>();
        map.put("iv", R.drawable.pic4);
        map.put("tv_title", "特步男鞋2021夏季新款跑步鞋飞织透气跑鞋轻便网面运动鞋男学生鞋");
        map.put("tv_subtitle", "轻便缓震 | 网面透气 | 舒适百搭");
        map.put("tv_price", "¥139");
        map.put("tv_price_title", "  ");
        map.put("tv_little_title", "京东物流  领券199减20");
        map.put("tv_comment", "10万条+评价 97%好评");
        mNewsList.add(map);



        class MyViewHoder extends RecyclerView.ViewHolder {
            TextView tv_title;
            TextView tv_subtitle;
            TextView tv_price;
            TextView tv_price_title;
            TextView tv_little_title;
            TextView tv_comment;
            ImageView iv;

            public MyViewHoder(@NonNull View itemView) {
                super(itemView);
                iv = itemView.findViewById(R.id.iv);
                tv_title = itemView.findViewById(R.id.tv_title);
                tv_subtitle = itemView.findViewById(R.id.tv_subtitle);
                tv_price = itemView.findViewById(R.id.tv_price);
                tv_price_title = itemView.findViewById(R.id.tv_price_title);
                tv_little_title = itemView.findViewById(R.id.tv_little_title);
                tv_comment = itemView.findViewById(R.id.tv_comment);

            }
        }

        class Myadapter extends RecyclerView.Adapter<MyViewHoder> implements com.example.myapplication5_17.MyAdapter {
            @NonNull
            @Override
            public MyViewHoder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list,parent,false);
                MyViewHoder myViewHoder = new MyViewHoder(view);
                return myViewHoder;
            }

            @Override
            public void onBindViewHolder(@NonNull MyViewHoder holder, int position) {
                holder.iv.setImageResource((Integer) mNewsList.get(position).get("iv"));
                holder.tv_title.setText((String) mNewsList.get(position).get("tv_title"));
                holder.tv_subtitle.setText((String) mNewsList.get(position).get("tv_subtitle"));
                holder.tv_price.setText((String) mNewsList.get(position).get("tv_price"));
                holder.tv_price_title.setText((String) mNewsList.get(position).get("tv_price_title"));
                holder.tv_little_title.setText((String) mNewsList.get(position).get("tv_little_title"));
                holder.tv_comment.setText((String) mNewsList.get(position).get("tv_comment"));

                //点击事件
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        String name = mNewsList.get(position).get("tv_title").toString();
                        Toast.makeText(getApplicationContext(), name, Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public int getItemCount() {
                return mNewsList.size();
            }


        }

        mMyAdapter = new Myadapter();
        mRecyclerView.setAdapter((RecyclerView.Adapter) mMyAdapter);

        //设置布局(线性布局)
        LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
        mRecyclerView.setLayoutManager(layoutManager);
            //网格布局
//        GridLayoutManager layoutManager = new GridLayoutManager(MainActivity.this,3);
//        // layoutManager.setOrientation(RecyclerView.HORIZONTAL);  也能设置横向滚动
//        mRecyclerView.setLayoutManager(layoutManager);
    }
}

以上就是折磨了我近一个月的Java代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值