Android学习day04

先序

尽量一天一更,看看自己能水到啥地步

第三章-续

3.4 系统控件不够用?创建自定义控件

3.4.1 引入布局
在layout创建xml文件,然后在其他xml中使用include引入

<include layout="@layout/title"></include>

3.4.2 自定义控件
当某些控件,比如标题栏的返回键,基本每个界面都要,使用非常广泛,这样就比较适合干脆自定义一个返回按钮控件。
自定义一个布局类,继承,然后重写带参数的构造函数,在布局中引入自定义布局类,就可以对自定义组件进行加载,借助LayoutInFlater,

3.5 ListView

最常用的组件。
简单用法:

public class ListViewActivity extends AppCompatActivity {

    private String[] data = {"aaa", "bbb", "ccc", "ddd", "eee", "fff"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                ListViewActivity.this,android.R.layout.simple_list_item_1,data);
        ListView listView = findViewById(R.id.list_view);
        listView.setAdapter(adapter);
    }
}


<ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/list_view"
        >
    </ListView>

难一点的用法,定制版
我感觉我现在,在经历一个时期,我真是草了,我现在要进行逐渐对比,我ctm,没错,不要怀疑,我就是一个sb
先看一下之前的学习吧

引入布局自定义插件普通引入ListView自定义引入ListView
简单来说就像是前端的组件化开发,把UI设计的给组件化了,然后主界面引用相同的UI是可以相同的,但是里面有些功能键可能是不同的,这个意思就是有些UI所对应的功能是不一样的,但是有些按钮是相同的其实意思就是如果某个组件化UI连功能都相似的话,干脆是可以定义成一个插件的普通引入ListView,使用官方定义好的自定义定义List
写好一个xml,然后在其他xml文件中引入,<include layout="@layout/xml文件名" />完成方法:自定义控件类继承布局,然后重写构造函数, LayoutInflater.from(context).inflate(R.layout.xml,this);

wcnm,昨天写的忘保存了

普通引入ListView自定义引入ListView
活动中建立一个ListView,然后修改活动的类,ListView显示数据分两步,第一步配置适配器,因为是普通所以使用ArrayAdapter,第二步是输入适配器第一步建立相应类,第二步建立子项布局xml文件,第三项继承适配器写新适配器,第四项在响应页面应用
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                ListViewActivity.this,android.R.layout.simple_list_item_1,data);
        //上下文,子项布局,数据   之前理解了很久,上下文意思就是当前你界面的位置,你想在哪个界面显示,不过一般都是本界面吧。
        // 子项布局,比如普通的这个来说,子项支持为String类型,等你要使用自定义布局的时候,就不能用这个item1来支持了,需要自己写支持项,比如经典的水果,你就需要写一个能够支持String和image的布局
        ListView listView = findViewById(R.id.list_view);
        listView.setAdapter(adapter);
public class Fruit {
    private String name;
    private int id;

    public Fruit(String name, int id) {
        this.name = name;
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public int getId() {
        return id;
    }
}

   <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fruit_id"></TextView>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/fruit_name"></TextView>


        initData();
        FruitAdapter fruitAdapter = new FruitAdapter(PrivateAdapter.this,R.layout.fruit_item,fruitList);
        ListView listView = findViewById(R.id.private_list_view);
        listView.setAdapter(fruitAdapter);

我真是烦透了这个傻逼ListView了,这点马上写写就过
3.5.2 提升ListView运行效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值