实现思路:
1、获取id
2、获取数据
3、给id设置适配器(Adapter)
4、给id设置点击事件,循环1-1000
5、自定义适配器(内存溢出)
(1)把布局文件转成view
(2)设值
(3)给按钮设置点击事件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.zking.y2_android0609_widgetplus2.MainActivity">
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/lv_main_list"
></ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="match_parent">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/iv_item_icon"
android:src="@drawable/default_ptr_flip"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_item_title"
android:text="XX"
android:textSize="30sp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下载"
android:id="@+id/btn_item_download"
/>
</LinearLayout>
public class ItemTag {
public ImageView imageView;
public TextView textView;
public Button button;
}
package com.zking.y2_android0609_widgetplus2;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private int[] images=new int[]{R.drawable.bird,R.drawable.cat,R.drawable.elephant,R.drawable.chicken};
private String[] titles= new String[]{"李思佳","刘再融","唐嫣","刘恺威"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv_main_list);
//获取数据
//实例化SimpleAdapter
listView.setAdapter(new MyAdapter());
//给ListView设置点击事件 //i%titles.length为了要循环数据0-9下标1-10000
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, "跳转到"+titles[i%titles.length]+"页面",Toast.LENGTH_SHORT).show();
}
});
}
//OOM OutOfMemory 内存溢出
class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return 10000; //多少条数据
}
@Override
public Object getItem(int i) {
return titles[i%titles.length]; //titles[i]代表获得titles里面每个值
}
@Override
public long getItemId(int i) { //下标
return i;
}
@Override
public View getView(final int i, View view, ViewGroup viewGroup) {
Log.i("test","i="+i+" "+view);
//把布局文件转成View
if(view==null){ //同一时间最多能看到14条数据,有14个null
view= getLayoutInflater().inflate(R.layout.item_listview,null);
ItemTag itemTag=new ItemTag();
itemTag.imageView= (ImageView) view.findViewById
(R.id.iv_item_icon);
itemTag.textView= (TextView) view.findViewById
(R.id.tv_item_title);
itemTag.button= (Button) view.findViewById
(R.id.btn_item_download);
view.setTag(itemTag);
}
ItemTag itemtag= (ItemTag) view.getTag();
//设值
itemtag.imageView.setImageResource(images[i%titles.length]);
itemtag.textView.setText(titles[i%titles.length]+i);
//给按钮设置点击事件
itemtag.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "正在下载"+titles[i%titles.length],
Toast.LENGTH_SHORT).show();
}
});
return view;
}
}
}
文章浏览阅读2.3k次。如何快速发现使用的开源组件的license和冲突?最快的方法当然是借助相关工具进行扫描源代码,发现并确认其中存在的开源代码,及其版本、许可证(License)信息等,形成“材料清单”。使用fossid可以让用户了解其代码中包含的开源代码成分,并分析这些开源代码可能带来的风险(知识产权风险、安全漏洞风险等)。材料清单中会有相关CVE漏洞的提示。FOSSID 是一个软件解决方案,能够单独部署使..._怎么看一个开源软件的license
文章浏览阅读642次。Custom Gradients in TensorFlowTensorFlow defines deep learning models as computational graphs, where nodes are called ops, short for operations, and the data that flows between these ops are called ten
文章浏览阅读43次。Android系统手机屏幕的左上角为坐标系,同一时候y轴方向与笛卡尔坐标系的y轴方向想反。通过提供的api如getLeft,getTop,getBottom,getRight能够获得控件在parent中的相对位置。同一时候。也能够获得控件在屏幕中的绝对位置,具体使用方法可參考android应用程序中获取view的位置当我们编写一些自己定义的滑动控件时,会用到一些api如scro...
文章浏览阅读2.1k次。Apple Pay准备工作-申请MerchantID及对应证书详细图文教程字数475 阅读1412 评论9 喜欢19在接入Apple Pay之前,首先要申请MerchantID及对应证书。准备工作:本地先生成一个CSR文件备用,用于申请证书。教程:MAC下生成CSR(.certSigningRequest)文件申请 MerchantID登录苹_applepay ca证书
文章浏览阅读1.4k次。关于目录有三种权限: r - -可读权限,可以列出目录下的内容(但如果要列出目录下的内容必须要能进入这个目录所需要的权限为 r-x) -w-可写权限,可以往目录里些内容(但是如果如果往目录里面些内容,那么这个目录的权限至少是-wx,首先得进入这个目录) - -x可执行的权限,可以进入一个目录(但是不能读或者写) 因此如果用户要进入一个目录,那么权限至少–x关于文件的三种权限: r
文章浏览阅读147次。今天我们用python和pygame实现一个乒乓球的小游戏,或者叫弹珠球游戏。笑脸乒乓球游戏功能介绍乒乓球游戏功能如下:乒乓球从屏幕上方落下,用鼠标来移动球拍,使其反弹回去,并获得得分,如果没有接到该球,则失去一条命。玩家有一定数量的命如5。游戏设计思路根据游戏规则,我们需要1、初始化游戏环境2、画出乒乓球,球拍等3、设置乒乓球的运动,并监听鼠标,以移动球拍4、判断乒乓球被接住与否5、游戏是否结束..._pygame 玻璃
文章浏览阅读278次。8数码,无解情况为逆序数为奇数,用康托展开压缩成一个int来判重这个是单组输入所以我们来一组搜一次这里给出bfs和A*A*的话,你可以使用曼哈顿距离,当然,由于不用最少步数,可以用3倍曼哈顿距离加速IDA*的话,用曼哈顿距离bfs#include<iostream>#include<cstdio>#include<queue>..._poj 1077
文章浏览阅读486次。按照海军战术数据链路计划,80年代使用的数据链路是Linkll、Link4A、Link4C,90年代开始使用Linkl6(即JTIDS),并逐渐加大其数量,大约在2005年,将取消Link4A和Link4C。JTIDS系统体现了许多高新技术,系统采用的新技术有:时分多址、直接序列扩频、跳频、同步密钥、级联纠错编码、相关检测、动态网管理技术等,该系统实现了突发频率和传输信息离散化、随机化,使发射电波密度降低很多,信号近似随机噪声,因而提高了系统的保密性和抗干扰性。该系统在C3I系统中起着重要作用。
文章浏览阅读973次。线索二叉树线索二叉树:前序遍历的线索二叉树:中序遍历的线索二叉树(常):后序遍历的线索二叉树:线索二叉树的节点结构及代码实现:中序线索二叉树的构造:中序线索二叉树的遍历:线索二叉树:在实现一颗二叉树时,会产生空指针,个数为n+1个,若节点无左子树,将指针指向前驱节点;若无右子树,将指针指向后继节点,从而实现线索化,将加上线索的二叉树称为线索二叉树。即:1、若无左子树,将指针指向前驱节点2、..._线索二叉树的空指针域有多少种情况?
文章浏览阅读3.3k次。本教程按我自己方式写的,不一定对,但是是可以实现的,为了方便逻辑都写在了Controller层,我数据是静态的,可以自行用数据库动态生成。微信公众平台接口测试帐号申请:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login内网穿透微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_standard_m._bizmsgmenu
文章浏览阅读1.2k次,点赞7次,收藏12次。基于Python的modis_heg拼接重采样批处理(MacOS)_heg 拼接批处理
文章浏览阅读62次。引子 WCF是"Windows Communication Foundation "的缩写,原来的代号为"Indigo",它是MS为SOA(Service Oriented Architecture)而设计的一套完整的技术框架。利用它能够开发出分布式(Distributed)应用程序,而且开发难度相比以前的.Net Remoting和Asp.Net Xml Web Service...