public class MainActivity extends Activity {

    private ListView listview;
private List<String> dataList = new ArrayList<String>(); @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
initData();
MyAdapter myAdapter = new MyAdapter();
listview.setAdapter(myAdapter);
//为listview设置点击监听
listview.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
//标题
if(position == 1|| position == 7){
return;
}
//数据
Toast.makeText(MainActivity.this, "点击了第"+position+"条", 0).show();
}
}); }
private void initData() {
for (int i = 0; i < 10; i++) {
dataList.add("第"+i+"条数据");
} }
class MyAdapter extends BaseAdapter{ @Override
public int getCount() {
return dataList.size();
} @Override
public Object getItem(int position) {
return dataList.get(position);
} @Override
public long getItemId(int position) {
return position;
} /*
* 总共显示10条数据 第2条和第8条显示文本 其他显示图片加文本(position)
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//注意:1.加载的是布局文件,返回的也是布局文件,
//   2.只有textview特殊能直接返回,imageView需要从布局中加载文件
//屏幕滑出去会自动复用
if(position == 1 || position == 7){
TextView textView = new TextView(MainActivity.this);
textView.setText(""+position);
textView.setTextSize(30);
textView.setTextColor(Color.BLUE);
return textView;
}
ViewHolder viewHolder = null ;
//如果复用的view不为空,并且能转化为子类布局文件,获取viewHolder对象,否则加载布局文件,重新进行设置复用的view
if(convertView != null&&convertView instanceof LinearLayout){
viewHolder = (ViewHolder) convertView.getTag();
viewHolder.tv_text.setText("+"+dataList.get(position));
}else{
//加载布局
viewHolder= new ViewHolder();
convertView = View.inflate(MainActivity.this, R.layout.listview_item01, null);
viewHolder.iv_image = (ImageView) convertView.findViewById(R.id.iv_image01);
viewHolder.tv_text = (TextView) convertView.findViewById(R.id.tv_text01);
viewHolder.tv_text.setText("+"+dataList.get(position));
convertView.setTag(viewHolder);
} return convertView;
}
class ViewHolder{
private TextView tv_text;
private ImageView iv_image;
} }
}

Instanceof对象与类比较运算符

语法: 对象 instanceof 类    向下转型(大转小)父转子,必须强行转

返回类型是boolean类型,非true即false

表示判断某个对象是否属于某个类

注意:这个比较运算符不能随便使用,必须用在类与类存在继承关系的时候使用

效果图:

ListVIew中插入view的更多相关文章

  1. 【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线

    最近的项目中给ListView 加入了一个Header View之后,发现Header View的下方也有了分割线,很难看,UI要求将Header View的分割器去掉,好吧.现在就来说一说如何如何去 ...

  2. android 在 ListView 的 item 中插入 GridView 仿微信朋友圈图片显示。

    转载请声明出处(http://www.cnblogs.com/linguanh/) 先上张效果图: 1,思路简述 这个肯定是要重写 baseAdapter的了,这里我分了两个数据适配器,一个是自定义的 ...

  3. Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用)

    Atitit.java c#.net php项目中的view复用(jsp,aspx,php的复用) 1.1. Keyword1 1.2. 前言1 2. Java项目使用.Net的aspx页面view1 ...

  4. ListView中的setOnScrollListener

    ListView是Android中最常用的控件之一,随着时代发展,RecyclerView有取代它的趋势,但是在一些老代码中,ListView依然扮演着重要的作用.项目中遇到一个需求,需要监听List ...

  5. ListView中动态显示和隐藏Header&Footer

    ListView的模板写法 ListView模板写法的完整代码: android代码优化----ListView中自定义adapter的封装(ListView的模板写法) 以后每写一个ListView ...

  6. Android 如何在 ListView 中更新 ProgressBar 进度

    =======================ListView原理============================== Android 的 ListView 的原理打个简单的比喻就是: 演员演 ...

  7. ListView 中含有 EditText 导致焦点丢失的问题

    ListView 中的 item 中有 EditText 时. 如果activity的输入法选项设置为 android:windowSoftInputMode="adjustResize&q ...

  8. C#中清空ListView中的数据

    我的显示数据的方式通过button按钮点击事件,当点击之后查询数据库库并将数据显示出来. 代码如下: private void button6_Click(object sender, EventAr ...

  9. android代码优化----ListView中自定义adapter的封装(ListView的模板写法)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. 【JMeter】Jmeter-完成一个http压力测试

    一 新建一个jmeter项目 1 进入/jmeter/bin路径,双击jmeter.bat,在win环境下启动jmeter. 2 点击"编辑->添加->TreadUsers-&g ...

  2. 线性存储结构-ArrayList、Vector

    ArrayList:采用数组的内部构建形式,也就是顺序存储模式.当新增一个对象时,如果当前长度超过预设,会使用System.arraycopy(定义一个更长的数组进行复制处理),这个时候开销比较大. ...

  3. Jquery 操作xml 文档的方法

    需求: 页面上有两个下拉框,显示游戏大区 和游戏服务器,当游戏大区改变时,游戏服务器也跟着改变 界面部分html代码 <tr class="tkSigUser"> &l ...

  4. error C2065:未声明的标识符错误

    原文地址:http://blog.sina.com.cn/s/blog_8216ada701017evx.html 在VS2010下进行VC++调试时,出现这样一种错误:error C2065:未声明 ...

  5. .NET在WebForm里实现类似WinForm里面TrackBar控件的效果(AJAX Control Toolkit的使用)

    WinForm 里面有一个 TrackBar 控件,表示一个标准的 Windows 跟踪条,是类似于 ScrollBar 控件的可滚动控件.用这个控件可以实现很多可以实时调整的功能,比如最常见的音量调 ...

  6. bzoj 1176 Mokia(CDQ分治,BIT)

    [题目链接]  http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=96974 [题意] 定义查询操作与修改操作:1 x y z 为 ...

  7. East Central North America Region 2015

    E 每过一秒,当前点会把它的值传递给所有相邻点,问t时刻该图的值 #include <iostream> #include <cstdio> #include <algo ...

  8. HW6.24

    public class Solution { public static void main(String[] args) { int count = 0; int color; int numbe ...

  9. [.NET]c#.net程序中使用ffmpeg.exe来处理视频并生成上传视频的截图

    添加如下前台代码: <asp:FileUpload ID="FileUpload1" runat="server" /> <asp:Butto ...

  10. ubuntukylin提取root权限及mongoDB部署

    UbuntuKylin下安装Mongodb (参照UbuntuKylin下安装Mongodb一文安装成功后的心得) 1.官网下载安装包  http://www.mongodb.org/dr/fastd ...