java编程语言学习(三)

三元运算符

(也称为条件运算符)来简化这个判断语句为一句话。三元运算符的基本形式为 条件 ? 表达式1 : 表达式2。如果条件为真,则返回表达式1的值;如果条件为假,则返回表达式2的值。

对于你给出的代码,可以简化为:

return bit == 1 ? -1.0 : 1.0;

子类中的super关键词

在Java中,super关键字用于从子类中访问父类的内容。它通常用于以下几种情况:

  1. 调用父类的构造方法
    在子类的构造方法中,可以使用super()来调用父类的构造方法。这通常是在子类需要初始化从父类继承的字段时使用的。如果子类构造方法中没有显式地调用父类的构造方法,Java编译器会自动插入一个对父类无参构造方法的调用(前提是父类有一个无参构造方法)。

    class Parent { 
    Parent() { 
    System.out.println("Parent's constructor called"); 
    } 
    } 
    
    
    class Child extends Parent { 
    Child() { 
    super(); // 显式调用父类的构造方法 
    System.out.println("Child's constructor called"); 
    } 
    } 
    
    
    public class Main { 
    public static void main(String[] args) { 
    Child child = new Child(); 
    } 
    }

    在上面的例子中,Child类的构造方法通过super()显式地调用了Parent类的构造方法。

  2. 访问父类的成员变量
    如果子类与父类有同名的成员变量,可以使用super来引用父类的成员变量。

    class Parent { 
    int x = 10; 
    } 
    
    
    class Child extends Parent { 
    int x = 20; 
    void display() { 
    System.out.println("Parent x: " + super.x); // 访问父类的x 
    System.out.println("Child x: " + this.x); // 访问子类的x 
    } 
    } 
    
    
    public class Main { 
    public static void main(String[] args) { 
    Child child = new Child(); 
    child.display(); 
    } 
    }

  3. 访问父类的方法
    同样地,如果子类与父类有同名的方法(通常被称为方法重写),可以使用super来调用父类的方法。

    class Parent { 
    void show() { 
    System.out.println("Parent show method"); 
    } 
    } 
    
    
    class Child extends Parent { 
    void show() { 
    super.show(); // 调用父类的show方法 
    System.out.println("Child show method"); 
    } 
    } 
    
    
    public class Main { 
    public static void main(String[] args) { 
    Child child = new Child(); 
    child.show(); 
    } 
    }

    在这个例子中,Child类重写了show方法,并在自己的实现中调用了super.show()来执行父类的show方法。

  4. 访问父类的静态成员
    虽然不常见,但super也可以用来引用父类的静态成员(静态变量或静态方法)。但通常我们直接通过类名来访问静态成员。

class Parent { 
static void staticMethod() { 
System.out.println("Parent static method"); 
} 
} 


class Child extends Parent { 
void test() { 
super.staticMethod(); // 可以通过super调用,但通常直接通过类名调用 
Parent.staticMethod(); // 常见的调用方式 
} 
} 


// ...

注意:super关键字不能在静态方法、静态代码块或构造函数之外的任何地方使用,因为它引用的是当前对象的父类对象。在静态上下文中,不存在当前对象,因此也无法使用super

Android开发中的常用控件和常用属性,Button、TextView、EditText、ListView、AlertDialog和Toast

Button

控件介绍
Button控件用于在界面上创建可点击的按钮,用户可以通过点击按钮来触发某个动作或事件。

常用属性

  • android:id:为按钮设置唯一的标识符。
  • android:text:设置按钮上显示的文本。
  • android:textSize:设置按钮上文本的大小。
  • android:textColor:设置按钮上文本的颜色。
  • android:background:设置按钮的背景颜色或背景图片。
  • android:layout_width 和 android:layout_height:设置按钮的宽度和高度。

TextView

控件介绍
TextView控件用于在界面上显示文本信息,但不提供用户输入功能。

常用属性

  • android:id:为TextView设置唯一的标识符。
  • android:text:设置TextView中显示的文本。
  • android:textSize:设置文本的大小。
  • android:textColor:设置文本的颜色。
  • android:gravity:设置文本的对齐方式(如居中、居左、居右等)。
  • android:layout_width 和 android:layout_height:设置TextView的宽度和高度。

EditText

控件介绍
EditText控件用于在界面上创建一个可编辑的文本框,用户可以在其中输入或修改文本。

常用属性

  • android:id:为EditText设置唯一的标识符。
  • android:hint:设置文本框为空时显示的提示信息。
  • android:inputType:设置文本框接受的数据类型(如数字、文本等)。
  • android:maxLength:设置文本框中可输入的最大字符数。
  • android:singleLine:设置文本框是否为单行输入。
  • android:layout_width 和 android:layout_height:设置文本框的宽度和高度。

ListView

控件介绍
ListView控件用于在界面上显示一个垂直滚动的列表,其中可以包含多个子项(通常是通过适配器Adapter来填充)。

常用属性

  • android:id:为ListView设置唯一的标识符。
  • android:divider:设置列表项之间的分隔线。
  • android:dividerHeight:设置分隔线的高度。
  • android:listSelector:设置列表项被选中时的背景颜色。
  • android:scrollbars:设置是否显示滚动条。
  • android:transcriptMode:设置列表的滚动模式(如始终滚动到最新项)。

AlertDialog

控件介绍
AlertDialog是Android平台上用于显示对话框并与用户进行交互的UI组件。

常用属性和方法

  • setTitle:设置对话框的标题。
  • setMessage:设置对话框中显示的消息内容。
  • setPositiveButton:设置对话框中的正面按钮(如“确定”)及其点击事件。
  • setNegativeButton:设置对话框中的负面按钮(如“取消”)及其点击事件。
  • show:显示对话框。
  • dismiss:隐藏对话框。

Toast

控件介绍
Toast是Android平台上用于显示简短信息并自动消失的UI组件,通常用于显示一些提示信息或通知。

常用方法

  • makeText:静态方法,用于创建一个Toast对象并设置要显示的消息内容和显示时长。
  • show:显示Toast。

请注意,以上列举的属性和方法可能因Android版本和具体实现而有所不同。在实际开发中,建议查阅最新的Android官方文档以获取最准确的信息。

Android的布局文件、主要布局管理器类型和常用属性(LinearLayout、RelativeLayout、TableLayout)

Android的布局文件是XML文件,用于定义用户界面(UI)中视图(View)的排列和属性。这些文件通常保存在项目的res/layout目录下。以下是关于Android布局文件、主要布局管理器类型和常用属性的介绍:

布局文件

  • 命名及注意事项
    • 布局文件的扩展名必须是.xml
    • 布局文件必须符合Java变量名的命名规则。
    • 每一个XML布局文件的根节点可以是任意的控件标签,如<TextView><LinearLayout>等。
    • 为XML布局文件中的标签指定ID时需使用@+id/somestring格式。

主要布局管理器类型

  1. LinearLayout(线性布局)
  • 特点:按照水平或垂直方向排列子视图,可以设置权重来实现权重分配。
  • 常用属性:
    • android:layout_width 和 android:layout_height:定义布局的宽度和高度。
    • android:orientation:设置布局的方向,可以是horizontal(水平)或vertical(垂直)。
    • android:weightSum(可选):定义布局中所有子视图权重的总和。
    • 子视图的android:layout_weight:定义子视图在布局中所占的权重比例。
  1. RelativeLayout(相对布局)
  • 特点:允许子元素指定它们相对于其父元素或兄弟元素的位置。
  • 常用属性(针对子视图):
    • android:layout_toLeftOfandroid:layout_toRightOfandroid:layout_aboveandroid:layout_below:指定子视图相对于其他视图的位置。
    • android:layout_alignLeftandroid:layout_alignRightandroid:layout_alignTopandroid:layout_alignBottom:使子视图的某一边与其他视图的某一边对齐。
    • android:layout_centerInParentandroid:layout_centerHorizontalandroid:layout_centerVertical:将子视图置于父视图的中心位置。
  1. TableLayout(表格布局)
  • 特点:子视图以表格的形式排列,可以使用行和列来定义子视图的位置。
  • 常用属性(针对TableRow子元素):
    • android:layout_column:设置子元素所在的列索引。
    • android:layout_span:设置子元素跨越的列数。
    • 表格的每一行通常由TableRow表示,其内部的子元素相当于表格的单元格。

注意事项

  • 在布局文件中,根节点通常是一个布局管理器,如LinearLayoutRelativeLayoutTableLayout
  • 子视图(或称为控件)可以嵌套在其他布局管理器中,以实现更复杂的布局效果。
  • 布局文件中的属性可以根据需要进行组合和设置,以实现所需的界面效果。

希望这些信息对你有所帮助!

Android获取界面控件的方法(findViewById)

在Android开发中,findViewById 方法是用于从当前视图(View)的层次结构中检索具有指定ID的视图(View)对象的方法。这个方法通常用于从布局XML文件中加载的视图层次结构中获取控件的实例,以便在Java或Kotlin代码中与它们进行交互。

findViewById 方法的使用

获取控件实例
在Activity、Fragment或任何继承了View的类中,你可以调用findViewById方法来获取控件实例。这个方法需要一个整数参数,即你在XML布局文件中为控件设置的ID。

Button myButton = (Button) findViewById(R.id.my_button);

在Activity中使用
在Activity中,你可以直接调用findViewById,因为Activity是一个Context,并且包含了当前加载的布局的根视图。

在Fragment中使用
在Fragment中,你应该在onViewCreated回调方法中调用findViewById,并且应该使用getView()方法返回的View对象作为调用者,或者如果你使用的是视图绑定(View Binding),则可以直接使用绑定对象来访问控件。

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 
// Inflate the layout for this fragment 
return inflater.inflate(R.layout.fragment_example, container, false); 
} 


@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
super.onViewCreated(view, savedInstanceState); 
Button myButton = view.findViewById(R.id.my_button); 
}

在Adapter中使用
在Adapter(如RecyclerView.Adapter)中,findViewById通常在onCreateViewHolderonBindViewHolder方法中被调用,并且是在ViewHolder的itemView上被调用的。

注意事项

  • 确保你在正确的上下文中调用findViewById。在Activity中,你可以直接调用它;在Fragment中,你应该在getView()返回的View上调用它;在Adapter中,你应该在ViewHolder的itemView上调用它。
  • 确保你的控件ID在XML布局文件中是唯一的,并且你在Java或Kotlin代码中使用的ID与XML中定义的ID相匹配。
  • 使用视图绑定(View Binding)可以进一步简化代码,减少空指针异常的风险,并提高代码的可读性和可维护性。视图绑定是Android Jetpack库的一部分,它在编译时生成一个绑定类,该类包含对布局文件中所有具有ID的视图的直接引用。

Button控件点击事件监听器的实现(三种方式: onClick属性、匿名内部类、匿名函数)

一、 onClick

二、匿名内部类

三、匿名函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值