ListView常用小技巧

ListView在我们Android项目中的地位是有目共睹的,相信几乎每一个App中都有它的身影。
ListView主要是用列表形式来加载数据,在特定情况下需要实现一些特殊功能:如刷新数据,加载数据,实现动画效果等。
作为我们常用的控件,有哪些需要注意的呢?

**为ListView的每一Item设置分隔线

第一种方法:也是最简单地方法,在布局文件中设置ListView的 
divider属性 
如:android:divider=”@color/black” 
第二种方法:设置android:divider=”@null”表示不要分隔线,然后,自己在Item布局中添加分隔线。

<code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"> <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/test_lv"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:divider</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"#d1d1d1"</span><span class="hljs-value" style="color:#0880;box-sizing: border-box;"><!--设置分隔线颜色--</span>></span>
        android:dividerHeight="1px"<span class="hljs-comment" style="color:#8800;box-sizing: border-box;"><!--设置分隔线高度--></span>
        >
 <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView</span>></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li></ul>

** 默认情况下,ListView的item有点击效果,怎么样改变这种效果呢? 
设置ListViewr的android:listSelector属性,比如可以设置透明取消这种效果android:listSelector=”@android:color/transparent” 
也可以设置自己想要的效果,添加对应的color资源或drawble资源 就可以了。 
** 当数据比较多的时候,ListView在滚动时候会显示一个默认的滚动条,要取消这个滚动条的话,可以设置android:scrollbars属性 
如:android:scrollbars=”none” 
** ListView性能优化,必用ViewHolder来充分发挥ListView的recycle机制 
** ListView中数据动态变化,添加或删除数据操作,效果显而易见。

<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//实现ListView数据添加删除</span>
<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">class</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">MainActivity</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">extends</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">Activity</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">implements</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">View</span>.<span class="hljs-title" style="color:#66066;box-sizing: border-box;">OnClickListener</span> {</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> ListView test_lv;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> List<TestBean> dataList;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> TestAdapter adapter;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> Button add_btn, del_btn;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> ImageView emptyIv;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> LinearLayout operator_ll;

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">protected</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onCreate</span>(Bundle savedInstanceState) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">super</span>.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initDatas();
        initViews();

    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">initDatas</span>() {
        dataList = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> ArrayList<>();
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span> (<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> i = <span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>; i < <span class="hljs-number" style="color:#06666;box-sizing: border-box;">5</span>; i++) {
            TestBean bean = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> TestBean();
            bean.setTitle(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"标题_"</span> + i);
            bean.setContent(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"这是内容_"</span> + i);
            bean.setType(i % <span class="hljs-number" style="color:#06666;box-sizing: border-box;">2</span> == <span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span> ? <span class="hljs-number" style="color:#06666;box-sizing: border-box;">1</span> : <span class="hljs-number" style="color:#06666;box-sizing: border-box;">2</span>);
            dataList.add(bean);
        }
    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">initViews</span>() {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.test_lv = (ListView) findViewById(R.id.test_lv);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.add_btn = (Button) findViewById(R.id.add_btn);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.del_btn = (Button) findViewById(R.id.del_btn);
        emptyIv = (ImageView) findViewById(R.id.empty_iv);
        operator_ll=(LinearLayout)findViewById(R.id.operator_ll);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.add_btn.setOnClickListener(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.del_btn.setOnClickListener(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span> (dataList.size() == <span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>) {
            emptyIv.setVisibility(View.VISIBLE);
            operator_ll.setVisibility(View.GONE);
            test_lv.setEmptyView(emptyIv);
        } <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">else</span> {
            emptyIv.setVisibility(View.GONE);
            operator_ll.setVisibility(View.VISIBLE);
            adapter = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> TestAdapter(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>, dataList);
            test_lv.setAdapter(adapter);
        }
        test_lv.setSelection(<span class="hljs-number" style="color:#06666;box-sizing: border-box;">15</span>);
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onClick</span>(View v) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">switch</span> (v.getId()) {
            <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">case</span> R.id.add_btn:
                <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//默认增加在第一个位置</span>
                TestBean bean = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> TestBean();
                bean.setTitle(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"增加项"</span>);
                bean.setContent(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"这是增加内容"</span>);
                bean.setType(<span class="hljs-number" style="color:#06666;box-sizing: border-box;">1</span>);
                dataList.add(<span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>, bean);
                <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">break</span>;
            <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">case</span> R.id.del_btn:
                <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//默认删除第一条数据</span>
                dataList.remove(<span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>);
                <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">break</span>;
        }
        adapter.notifyDataSetChanged();<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//刷新ListView数据</span>
    }
}
<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//ListView对应Adapter</span>
<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">class</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">TestAdapter</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">extends</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">BaseAdapter</span> {</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> Context mContext;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> List<TestBean> listDatas;

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">TestAdapter</span>(Context mContext, List<TestBean> listDatas) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.mContext = mContext;
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.listDatas = listDatas;
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> <span class="hljs-title" style="box-sizing: border-box;">getCount</span>() {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> listDatas.size();
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> Object <span class="hljs-title" style="box-sizing: border-box;">getItem</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> listDatas.get(position);
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">long</span> <span class="hljs-title" style="box-sizing: border-box;">getItemId</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> position;
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> View <span class="hljs-title" style="box-sizing: border-box;">getView</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position, View convertView, ViewGroup parent) {
        ViewHolder holder = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>;
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span> (convertView == <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>) {
            holder = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> ViewHolder();
            convertView = LayoutInflater.from(mContext).inflate(R.layout.test_item, <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>);
            holder.title = (TextView) convertView.findViewById(R.id.item_title);
            holder.content = (TextView) convertView.findViewById(R.id.item_content);
            convertView.setTag(holder);
        } <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">else</span> {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.content.setText(listDatas.get(position).getContent());
        holder.title.setText(listDatas.get(position).getTitle());
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> convertView;
    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">final</span> class ViewHolder {
        TextView title;
        TextView content;
    }
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li></ul>

** 类似聊天界面,ListView中有多种item样式效果

<code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//实现ListView中多种item样式</span>
<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">class</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">TypeActivity</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">extends</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">Activity</span> {</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> ListView type_lv;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> List<TestBean> dataList;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> TypeAdapter adapter;

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">protected</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">onCreate</span>(Bundle savedInstanceState) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">super</span>.onCreate(savedInstanceState);
        setContentView(R.layout.activity_type);
        initDatas();
        initViews();

    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">initDatas</span>() {
        dataList = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> ArrayList<>();
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">for</span> (<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> i = <span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span>; i < <span class="hljs-number" style="color:#06666;box-sizing: border-box;">9</span>; i++) {
            TestBean bean = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> TestBean();
            bean.setTitle(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"标题_"</span> + i);
            bean.setContent(<span class="hljs-string" style="color:#0880;box-sizing: border-box;">"这是内容_"</span> + i);
            bean.setType(i % <span class="hljs-number" style="color:#06666;box-sizing: border-box;">2</span> == <span class="hljs-number" style="color:#06666;box-sizing: border-box;">0</span> ? <span class="hljs-number" style="color:#06666;box-sizing: border-box;">1</span> : <span class="hljs-number" style="color:#06666;box-sizing: border-box;">2</span>);
            dataList.add(bean);
        }
    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">void</span> <span class="hljs-title" style="box-sizing: border-box;">initViews</span>() {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.type_lv = (ListView) findViewById(R.id.type_lv);
        adapter = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> TypeAdapter(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>, dataList);
        type_lv.setAdapter(adapter);

    }
}
<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//对应Adapter</span>
<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-class" style="box-sizing: border-box;"><span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">class</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">TypeAdapter</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">extends</span> <span class="hljs-title" style="color:#66066;box-sizing: border-box;">BaseAdapter</span> {</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> Context mContext;
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">private</span> List<TestBean> listDatas;

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-title" style="box-sizing: border-box;">TypeAdapter</span>(Context mContext, List<TestBean> listDatas) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.mContext = mContext;
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">this</span>.listDatas = listDatas;
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> <span class="hljs-title" style="box-sizing: border-box;">getCount</span>() {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> listDatas.size();
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> Object <span class="hljs-title" style="box-sizing: border-box;">getItem</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> listDatas.get(position);
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">long</span> <span class="hljs-title" style="box-sizing: border-box;">getItemId</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> position;
    }

    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> View <span class="hljs-title" style="box-sizing: border-box;">getView</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position, View convertView, ViewGroup parent) {
        ViewHolder holder = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>;
        <span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//根据样式设置不同的布局及数据展示</span>
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> type = getItemViewType(position);
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span> (convertView == <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>) {
            holder = <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">new</span> ViewHolder();
            <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">if</span> (type == <span class="hljs-number" style="color:#06666;box-sizing: border-box;">1</span>) {
                convertView = LayoutInflater.from(mContext).inflate(R.layout.test_item, <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>);
                holder.title = (TextView) convertView.findViewById(R.id.item_title);
                holder.content = (TextView) convertView.findViewById(R.id.item_content);
            } <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">else</span> {
                convertView = LayoutInflater.from(mContext).inflate(R.layout.type_item, <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">null</span>);
                holder.title = (TextView) convertView.findViewById(R.id.type_title);
                holder.content = (TextView) convertView.findViewById(R.id.type_title);
            }
            convertView.setTag(holder);
        } <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">else</span> {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.content.setText(listDatas.get(position).getContent());
        holder.title.setText(listDatas.get(position).getTitle());
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> convertView;
    }
<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//关键方法之getViewTypeCount:获取有多少种样式</span>
    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> <span class="hljs-title" style="box-sizing: border-box;">getViewTypeCount</span>() {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> <span class="hljs-number" style="color:#06666;box-sizing: border-box;">2</span>;
    }
<span class="hljs-comment" style="color:#8800;box-sizing: border-box;">//关键方法之getItemViewType:获取item类型</span>
    <span class="hljs-annotation" style="color:#9b859d;box-sizing: border-box;">@Override</span>
    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">public</span> <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> <span class="hljs-title" style="box-sizing: border-box;">getItemViewType</span>(<span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">int</span> position) {
        <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">return</span> listDatas.get(position).getType();
    }

    <span class="hljs-keyword" style="color:#0088;box-sizing: border-box;">final</span> class ViewHolder {
        TextView title;
        TextView content;
    }
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li></ul>

相关布局 
activity_main.xml

<code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-pi" style="color:#06666;box-sizing: border-box;"><?xml version="1.0" encoding="utf-8"?></span>
<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span> <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">xmlns:android</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"http://schemas.android.com/apk/res/android"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">xmlns:tools</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"http://schemas.android.com/tools"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:orientation</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"vertical"</span>></span>

    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/operator_ll"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:orientation</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"horizontal"</span>></span>

        <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">Button
</span>            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/add_btn"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"0dp"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_weight</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"1"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:gravity</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"center"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:text</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"添加"</span> /></span>

        <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">Button
</span>            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/del_btn"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"0dp"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_weight</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"1"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:gravity</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"center"</span>
            <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:text</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"删除"</span> /></span>
    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span>></span>

    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/test_lv"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:divider</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"#d1d1d1"</span><span class="hljs-value" style="color:#0880;box-sizing: border-box;"><!--分隔线颜色--</span>></span>
        android:dividerHeight="1px"<span class="hljs-comment" style="color:#8800;box-sizing: border-box;"><!--分隔线高度--></span>
        android:listSelector="@android:color/transparent"<span class="hljs-comment" style="color:#8800;box-sizing: border-box;"><!--取消默认点击效果--></span>
        android:scrollbars="none"><span class="hljs-comment" style="color:#8800;box-sizing: border-box;"><!--隐藏滚动条--></span>
        <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView</span>></span>

    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ImageView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/empty_iv"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_gravity</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"center"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_marginTop</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"100dp"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:src</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@mipmap/empty"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:visibility</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"gone"</span> /></span>

<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span>></span>
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li></ul>

activity_type.xml

<code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-pi" style="color:#06666;box-sizing: border-box;"><?xml version="1.0" encoding="utf-8"?></span>
<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span> <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">xmlns:android</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"http://schemas.android.com/apk/res/android"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">xmlns:tools</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"http://schemas.android.com/tools"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:orientation</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"vertical"</span>></span>


    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/type_lv"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        ></span><span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">ListView</span>></span>


<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span>></span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li></ul>

test_item.xml

<code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-pi" style="color:#06666;box-sizing: border-box;"><?xml version="1.0" encoding="utf-8"?></span>
<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span> <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">xmlns:android</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"http://schemas.android.com/apk/res/android"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"match_parent"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:orientation</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"vertical"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:paddingLeft</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"15dp"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_marginTop</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"5dp"</span>
    <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_marginBottom</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"5dp"</span>></span>

    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">TextView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/item_title"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:text</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"Hello World!"</span> /></span>

    <span class="hljs-tag" style="color:#06666;box-sizing: border-box;"><<span class="hljs-title" style="color:#0088;box-sizing: border-box;">TextView
</span>        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:id</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"@+id/item_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_width</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_height</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"wrap_content"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:layout_marginTop</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"5dp"</span>
        <span class="hljs-attribute" style="color:#66066;box-sizing: border-box;">android:text</span>=<span class="hljs-value" style="color:#0880;box-sizing: border-box;">"Hello World!"</span> /></span>
<span class="hljs-tag" style="color:#06666;box-sizing: border-box;"></<span class="hljs-title" style="color:#0088;box-sizing: border-box;">LinearLayout</span>></span></code>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值