安卓学习(初)第三章(3)(《第一行代码》)

一、创建自定义标题栏

1、以线性布局编写代码。除了之前学过的设置控件对齐方式控件大小还有控件地址命名外,android:text设置控件文本内容,android:textColor设置控件底色,android:background设置背景,android:layout_marginLeft="5dp"等设置对应方向的偏移距离,android:textSize设置文本字体大小。

2、为了不需要每一个活动都要重新编写标题栏,可以在其他布局标签最外层上加上代码<include layout="@layout/title">(其中@layout/title是所需要调用的布局的地址)。

3、此外,因为安卓开发中系统是自带标题栏的,我们要在主活动中将系统自带的标题栏隐藏掉,代码如下:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        android.support.v7.app.ActionBar actionbar=getSupportActionBar();     //获得实例
        if (actionbar!=null){
            actionbar.hide();                                                 //隐藏
        }
    }
}

二、创建自定义控件(以下为示例,布局名称等皆是自定义命名)

1、新建一个Javaclass命名为TitleLayout继承LinearLayout:

public class TitleLayout extends LinearLayout {
    public TitleLayout(Context context, AttributeSet attrs) {
        super(context,attrs);
        LayoutInflater.from(context).inflate(R.layout.title,this);
    }
}

from(context)构建出一个LayoutInflater对象,inflate接受两个参数,第一个是要加载的布局文件,第二个参数是给加载好的布局添加一个父布局。上面的代码简单的说就是创建了一个控件,把title的布局加载进TitleLayout。

2、在main_activity 的布局文件加添加上面创建的控件,即添加<com.example.uicustomviews.TitleLayout>这个标签的控件内容。添加自定义控件和添加普通控件的方式基本相同,只是添加自定义控件是必须指明控件完整的类名,不能省略。

3、然后在上面的Javaclass里面注册各个点击事件或者其他触发事件,那么,以后只要在布局中引用了该自定义控件,在包含该布局的所有活动中就会自动添加该自定义控件包含的所有事件,不需要重复地一个一个活动地写一样的代码。

三、ListView控件

1、简单用法介绍

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

在layout文件注册和其他控件类似

public class MainActivity extends AppCompatActivity {
    private String[]data={"apple","banana","orange",
            "pear","grape","pineapple","cherry","mango"};     //ListView是用来展示大量数据的,我们在这提供数据
    @Override
    protected void onCreate(Bundle savedInstanceState) {      
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(   //开始构造适配器(借助适配器完成数据传给ListView)
                MainActivity.this,android.R.layout.simple_list_item_1,data);
        ListView listView=(ListView) findViewById(R.id.list_view);  //构造listview实例
        listView.setAdapter(adapter);                               //将构建好 的适配器对象传递进去
    }
}

注意使用了android.R.layout.simple_list_item_1作为ListView的子项布局的id,这是一个Android内置的布局文件,里面只有一个TextView,简单地显示一段文本。

2、定制ListView界面和自定义适配器见《第一行代码(第二版)》P115—P118较为详细。(该内容无法概括,或者本人能力不足以概括该节内容)。

猜你喜欢

转载自blog.csdn.net/Entronk_star/article/details/81778507