学习安卓怎么学?从界面开始。到各种控件到四大金刚,再到各种不同的应用方法和应用方式,却是很容易把自己学晕,怎么办呢?

先理清思路,然后从控件一个一个的开始学起,自从来到达内学习,由于之前的理解都是面对过程对象编程,和现在学习的面对对象编程还是有很大的差别。头一个半月都开始很晕,第二个月后开始慢慢回顾过往的知识,现在慢慢慢慢的回归到正道。慢慢的开始理解了一些概念。

今天我们来探讨下,关于类似于电话通讯录的联系方式的最简单的实现方法,慢慢的用案例的方式来进行学习。

前期的布局我们就不多说了,因为确实不难,大家可以对着布局多练习练习就好了,接下来我们以一个案例来讲讲ArrayAdapter的用法。

在安卓的学习中,我觉得第一道门槛就是我们所说的各种Adapter,当时听老师说了之后,我就晕了好几天,但是关键点还是多练,这点是我们必须做的事情。

在做这个案例的时候我们先来分析ArrayAdapter 怎么工作的:

了解清楚相应的工作原理后,我们就开始编写代码。首先我们来编写界面,这里我们来写的是显示数据的总界面,我采用的是Eclipse进行相应的界面编写:
由于默认是相对布局,我个人还是比较喜欢相对布局,所以首先修改为相对布局来进行界面的编写。
最终呈现界面如下:
布局代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.contactlist.MainActivity" >

<TextView
        android:id="@+id/tv_contactList"
        android:layout_width="match_parent"
        android:layout_height="40dp"
            android:background="#ffddffdd"
        android:gravity="center|center"
        android:text="通讯录列表" />
    <!-- 这里因为注释规则,原因,我们把所有注释卸载下面 为表头设置控件ID名称 -->
    <!-- 设定宽度与父空间相同 -->
    <!-- 设置高度为40dp -->
    <!-- 设置背景颜色为 #ffddffdd -->
    <!-- 设置文本文字 -->
    <!-- 设置文本控件对齐方式 -->

<ListView
        android:id="@+id/lv_showContactList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         android:layout_below="@+id/tv_contactList"
         >
    </ListView>
     <!-- 设置ID为lv_showContactList -->
    <!-- 设置宽度为匹配父控件 -->
    <!-- 设置高度匹配父控件 -->
    <!-- 设置位于TextView下面 -->
    
    
</RelativeLayout>

上面我们就将相应的数据呈现页面就准备完成了。接下来我们还要做一个页面,来呈现我们需要呈现的数据,我们接下来再呈现数据的格式是什么,包括字体颜色和字体格式,我们需要在Layout中新建XML来设置呈现格式,我们只需要新建一个XML文件,再在上面添加一个TextView标签,布局代码如下:
<?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"
    android:orientation="vertical" >

<TextView
        android:id="@+id/tv_item_show_format"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="姓名" 
        android:textSize="20sp"
        />

</LinearLayout>

最终呈现格式如下:
完成了界面设计,我们来进行控件的初始化了,由于主页面中只有一个ListView 需要进行初始化,我们为了代码显示的完整性考虑,我们把初始化直接用一个单独的方法来实现。后续的代码设计可以参考以下代码:
package com.example.contactlist;

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

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {
   //初始化contacts变量
private List<String> contacts;
     //定义listview
   private ListView lv_showContactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//将标题栏从外部去除掉。可以直接从代码中去掉
requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_main);

//初始化我们的ListView
setViews();
//ListView 填充数据
InitDatasource();
//将contacts数据封装成格式化的数据,以我们定制的数据进行呈现,This代表当前页面,resource 引用相关的Resource,第三列是将数据格式与XML格式对应上,最后是数据源
ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.list_item_showtitle, R.id.tv_item_show_format, contacts);
//最后我们将数据显示同步到我们的ListView中,显示相对来说比较简单,采用setAdapter方法
lv_showContactList.setAdapter(adapter);
}

private void setViews() {
      lv_showContactList=(ListView)findViewById(R.id.lv_showContactList);

}
private void InitDatasource() {
//在堆内存中创建出Arraylist对象,并且初始化相关的数据
contacts=new ArrayList<String>();
//填充数据
contacts.add("ammie");
contacts.add("anty");
contacts.add("bou");
contacts.add("betty");
contacts.add("cheman");
contacts.add("cindy");
contacts.add("dalas");
contacts.add("emma");
contacts.add("fancy");
contacts.add("gary");
contacts.add("hancy");
contacts.add("ivy");
contacts.add("imy");
contacts.add("jacy");
contacts.add("kancy");
contacts.add("lancy");
contacts.add("yancy");
contacts.add("zancy");

}

}

最后我们再看看结果,就可以直接在手机上实现单一联系人的效果了,但是这样的效果不太好,为什么呢?我只能通过点进去才能看得到具体的手机电话和相关信息,没有很好的用户体验。
接下来我们会有一篇文章教大家使用simpleAdapter来体验上面姓名,下面电话,左边头像的更好一点的效果。
还有一件小事,大家如果想来达内学习安卓或者其他课程,都可以找我啊,虽然我也是学员,但是只要你用我推荐的来,你还可以减少一点钱,然后我也可以拿点推荐费,何乐而不为,那就赶紧吧,达内还不错,如果想沟通的加我Q:10853913

我在达内学安卓-基于ArrayAdapter创建单一对象列表方式创建联系人列表!相关推荐

  1. SharePoint 2010 创建联系人列表和使用联系人列表

    SharePoint 2010 创建联系人列表和使用联系人列表 作为一款协同办公系统,联系人列表是必不可少的,SharePoint 2010里提供了"联系人列表模板",我们可以基于 ...

  2. java 对象创建过程_5种创建Java对象的方式

    在本篇文章中,将介绍5种创建Java对象的方式.类是创建对象的基本模板,接下来将介绍5种不同的方式,利用Java类来实例化Java对象. 1. 使用new关键字 ​ 采用new关键字实例化对象是Jav ...

  3. Exchange2007中创建收件人对象、通讯组和地址列表和客户端访问

    什么是收件人对象? 收件人在Exchange中被定义为具有发送或接收邮件能力的Active Directory对象 Exchange有3种收件人对象:用户.联系人.组 1.创建用户邮箱帐户 使用exc ...

  4. spring中bean的细节之三种创建Bean对象的方式

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  5. Spring框架----Spring的bean之三种创建bean对象的方式

    第一种方式:使用默认构造函数创建 在spring中的配置文件中,使用bean标签,配以id和class属性之后,且没有其他标签时,采用的就是默认构造函数创建bean对象, 此时类中没有默认构造函数,则 ...

  6. python创建子类对象会先创建父类对象_Python练习,python,习题

    代码判断 line2错 是因为too many values to unpack,这个错误.Python2可以改为a, b, c = raw_input(), raw_input(), raw_inp ...

  7. javaScript 对象添加属性和创建js对象的方式(以及理解:“无法给构造函数添加新的属性“)

    1.javaScript 对象想要添加属性,非常简单 (1)直接添加,使用语法:objectName.propertyName 添加属性. 举例: var person = new Object(); ...

  8. JavaScript - 用对象的方式创建数组

    <html><head><head><body><script language="javascript">// 用对象 ...

  9. 达梦数据库基于操作系统本机身份验证登录数据库

    简单介绍   达梦数据库基于操作系统身份验证的登录方式类似Oracle的操作系统认证登录方式(/ as sysdba).   达梦数据库基于操作系统的身份验证分为本机验证和远程验证,本机验证需要将DM ...

最新文章

  1. 万字长文 | 23 个问题 TCP 疑难杂症全解析
  2. Permission denied 故障
  3. kiftd 1.0.15 正式发布,青阳网络文件传输系统
  4. python列表类型用什么表示_python内置类型:列表,包括 list 和 tuple
  5. hibernate之缓存
  6. 微软人工智能和对话平台--知识商城体验
  7. [2021.1.27多校省选模拟10]染色(min-max容斥/二项式反演)
  8. 【LeetCode笔记】543. 二叉树的直径(Java、dfs、二叉树)
  9. 任务计划、chkconfig工具、systemd管理服务、unit、target
  10. 说学习前端开发简单,如何才能成功上岸?
  11. C# 编译或者解释?
  12. Ubuntu 16.04 安装Matlab R2015b
  13. labview技巧——获取网络时间
  14. FMCW激光雷达科普(上):基本概念、技术路线、优势及争议和误解
  15. Cadence OrCAD Capture 查找功能详细介绍
  16. 固定table第一列
  17. B - ZJM要抵御宇宙射线
  18. WiFi共享精灵自身存在的优势
  19. 内核该怎么学?Linux进程管理工作原理(代码演示)
  20. Mac_图片压缩_pngquant

热门文章

  1. 计算机组成中的mod2怎么理解,计算机组成原理个人总结(2)
  2. 编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示
  3. java语言输出水仙花数
  4. Java中的数组Array
  5. uniapp 页面滚动获取元素高度
  6. 流量就是这么省出来的
  7. 京东2017校招:4,7幸运数
  8. 不插卡就可以实现全网通上网的设备——无线宽带
  9. 【C语言程序设计】实验 11
  10. 使用 PLINK 把 vcf 的0/0,0/1,1/1转为字母格式的基因型(比如AA,AG,GG)