Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的变量赋值语法_Java_Android - Fatal编程技术网

java中的变量赋值语法

java中的变量赋值语法,java,android,Java,Android,我试图同时学习Android开发和java 在此代码中: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_layout); Button b = (Button)findViewById(R.id.button1); b.setOnClickLis

我试图同时学习Android开发和java

在此代码中:

@Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_layout);
    Button b =  (Button)findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
    Intent intent = new Intent(ActivityA.this, ActivityB.class);
    startActivity(intent);
        }
     });
    }
谁能解释一下按钮b=。。。行-b是按钮的别名,为什么(按钮)在findViewById之前?

它被调用。

这里
findViewById(R.id.btn_second)
返回一个类型为Button的视图,因此我们需要将其转换为Button类型

Button b = (Button) findViewById(R.id.btn_second);
没有
(按钮)

findViewById(R.id.btn\u秒)将返回一个视图。


Android用户界面对象都来自一个名为
View
(文档)的类型。

b是类型按钮的变量


(按钮)表示findViewById(…)的返回值被强制转换为按钮。

您必须将此
视图
转换为
按钮
小部件,它来自id为
按钮1的
活动布局

Button b =  (Button)findViewById(R.id.button1);

findViewById()
方法返回一个
视图
,它是按钮的超类。要将视图用作按钮,我们需要对其进行类型转换。这是因为按钮的某些方法(子类)在视图(超类)中可能不可用

查看
findViewById
方法的定义: 它返回
视图
类型,而不是按钮。 但是
View
class有很多子类:

按钮、编辑文本、文本视图等。。。
因此
(按钮)
意味着您将常规
视图
类型强制转换为required,该类型在XML布局中定义。

当变量类型写在赋值前面时,它被称为类型转换:

因此,在这种情况下:

float floatVariable = 10.2;
int test = (int) floatVariable;
浮点被强制转换为int。这是必要的,因为除非显式转换,否则int变量不能接受浮点

就你而言:

(Button)findViewById(R.id.button1)

方法findViewById()返回一个值,然后将该值转换为按钮。这是必要的,因为该方法不返回按钮

方法
findViewById
返回一个视图。使用此代码,您尝试查找给定id的按钮:

Button b = (Button) findViewById(R.id.button1);

您需要执行强制转换以将结果分配给按钮变量。如果您没有将结果强制转换为按钮,您将无法在b中调用“类按钮”中定义的任何方法。

请各位不要在没有留下您否决此问题的原因的情况下进行否决。谢谢大家的回答!抱歉,大家都觉得这是个糟糕的问题,我解释过我对java和android都是新手。所以Button、EditText等,如果可以的话,都是变量类型,就像INT或Array一样?java中的每个方法都有返回类型,可以是:1)简单类型-INT、double;2) 类类型-按钮、视图、活动、某些自定义类型;3) 数组-int[],double[],Button[];4) 无退货类型-作废;Java中有原语和对象。int是一个基元,array是一个对象。按钮、EditText,它们都是对象,这本质上意味着它们是类的实例(基本上)。
Button b = (Button) findViewById(R.id.button1);