首页 > 其他 > 详细

第四天啦

时间:2020-08-12 21:32:37      阅读:108      评论:0      收藏:0      [点我收藏+]

今天学了,四大布局,还有如何自定义布局,和引入自定义布局,还有自定义控件,最后就是ListView  最后这个ListView学的迷迷糊糊,还有什么适配器,呕吼是我Java没学好吧emmm。

代码

布局

四大布局

引入自定义布局 (UICustomViews)

  1. 自定义标题栏布局   新建一个布局文件title.xml

?
  <Button
      android:id="@+id/title_back"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_gravity="center"
      android:layout_margin="5dp"
      android:background="#000000"
      android:text="back"
      android:textColor="#fff" />
?
  <TextView
      android:id="@+id/title_text"
      android:layout_width="0dp"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:layout_gravity="center"
      android:gravity="center"
      android:text="Title Text"
      android:textColor="#fff"
      android:textSize="24sp"/>
?
  <Button
      android:id="@+id/title_edit"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_margin="5dp"
      android:layout_gravity="center"
      android:background="#000000"
      android:text="Edit"
      android:textColor="#fff"/>
?
  • 在需要的布局文件中用<include layout = "”/>来引入自定义标题栏布局.

<include layout="@layout/title"/>
  • 用自定义标题栏时需要把系统自带的隐藏起来,因此用到getSupportActionBar()方法来获取ActionBar的实例,然后调用hind()方法将默认的标题栏隐藏起来即可。

自定义控件

  • 新建一个类并继承LinearLayout,并重写其中两个带参数的构造函数,以便在布局中引入该控件时调用构造函数。

public class TitleLayout extends LinearLayout {
?
?
  public TitleLayout(Context context, AttributeSet attrs){
      super(context,attrs);
      LayoutInflater.from(context).inflate(R.layout.title,this);
?
  }}
  • 在构造函数中用LayouInflater 对标题栏布局进行动态加载,然后调用from()方法构建出一个LayoutInflater对象,后调用inflate()方法加载一个动态布局文件

  • inflate()  方法带两个参数,第一个参数是要加载布局的id   第二个参数是给加载好的布局添加一个父布局

  • 在布局中添加控件需要指明控件完整类名,包名。

  • 然后可用像正常控件那样设置监听

ListView(ListViewTest)

ListView的简单用法

    private String[] data = {"Apple","Banana", "hello", "nice to eet you", "good morning",
          "ambition", "stranger","Apple","Banana", "hello", "nice to eet you", "good morning",
          "ambition", "stranger","Apple","Banana", "hello", "nice to eet you", "good morning",
          "ambition", "stranger"};
?
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data);
      ListView listView = findViewById(R.id.list_view);
      listView.setAdapter(adapter);
  }

 

  • ListView是用来展示大量数据的

  • 数组中的数据无法直接的传递给ListView,所以要借助适配器,借助ArrayAdapter,他可用通过泛型来指定适配的数据类型,然后在构造函数中将要适配数据传入。

  • 构造函数中一共有三个函数,第一个是上下文,第二个是ListView子项布局的id,现在用   android.R.layout.simple_list_item_1    作为ListView子项的id,第三个是要适配的数据。

  • android.R.layout.simple_list_item_1是Android内置的布局文件,里面只有一个TextView,可用于简单的显示一段文本。

  • 最后用ListView 的setAdapter()方法,将构建好的适配器对象传递进去

自定义ListView界面

 

英语

  • type   n. 类型,品种;模范;样式

  • margin   n. 边缘;利润,余裕;页边的空白

  • context   n.环境,上下文

第四天啦

原文:https://www.cnblogs.com/youseed/p/13492880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!