我对申报有一个困惑。在第一段代码中,我在onCreate函数内部声明了视图,而在第二段代码中,我在onCreate函数外部声明了视图。第一个代码工作得很好,而第二个则不工作。我不知道哪一个是正确的。在我的其他一些项目中,我已经声明了onCreate函数之外,但没有任何问题。但为什么会有问题。
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//This declaration
TextView imgNum=findViewById(R.id.textView);
ImageView frame = findViewById(R.id.imageView);
ImageView left= findViewById(R.id.imageView2);
ImageView right=findViewById(R.id.imageView3);
left.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count--;
if (count<0){
count+=9;
}
}
但这不起作用。我所做的唯一改变是我把所有的声明放在onCreate函数之外。
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
int count=0;
//this declaration
TextView imgNum=findViewById(R.id.textView);
ImageView frame = findViewById(R.id.imageView);
ImageView left= findViewById(R.id.imageView2);
ImageView right=findViewById(R.id.imageView3);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
left.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count--;
if (count<0){
count+=9;
}
请帮帮我
第一种方法是正确的。第二个方法在活动
创建之前声明
视图
(oncreate
),这很可能会导致应用程序崩溃
,因为活动
尚未创建。如果
活动
不是创建的
,则在活动
是创建的
之前,不能声明
或访问其内部的视图元素
。
我不明白发生了什么事。我严格遵循所有的微软文档,事实上甚至不使用任何我自己的脚本/代码。首先,我按照他们的文档创建Python函数。成功了。https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-python?tabs=azure-cli、cmd、browser使用命令行工具将Azure功能连
问题内容: 以下代码段是否会降低性能? 还是这段代码实际上更有意义? 如果在字节码中这两个完全相等,那么显然第一种方法在样式方面看起来更好,但我想确保确实如此。 问题答案: 在当今的编译器中,没有。我在最小范围内声明对象,因为对于下一个家伙而言,它更具可读性。
问题内容: 这两种方法有什么优势吗? 范例1: 范例2: 问题答案: 没有区别-实例变量初始化实际上是由编译器放入构造函数中的。 第一种变体更具可读性。 你不能使用第一个变体进行异常处理。 另外还有初始化块,编译器也将其放在构造函数中: 但是,字段声明不是任何方法的一部分,因此它们不能像语句那样执行。相反,Java编译器会自动生成实例字段初始化代码,并将其放入该类的一个或多个构造函数中。初始化代码
5.1. 函数声明 函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。 func name(parameter-list) (result-list) { body } 形式参数列表描述了函数的参数名以及参数类型。这些参数作为局部变量,其值由参数调用者提供。返回值列表描述了函数返回值的变量名以及类型。如果函数返回一个无名变量或者没有返回值,返回值列表的括号是可以省略的。如
问题内容: 我相信在AS3中,您应该在循环外初始化所有变量,以提高性能。JavaScript也是如此吗?哪个更好/更快/最佳实践? 要么 问题答案: 有 绝对没有区别 意义还是性能,在JavaScript或ActionScript。 是解析器的指令,而 不是 运行时执行的命令。如果在函数体(*)中的任何位置一次或多次声明了特定的标识符,则该标识符在块中的所有使用将引用局部变量。声明是在循环内部,循
问题内容: 我试图在react-js类中声明一个变量。该变量应该可以在不同的函数中访问。这是我的代码 在onMove上,this.test的值是不确定的。我知道我可以将值放在状态上,但我不想这样做,因为每次值更改时,都会调用render(),这是不必要的。我是新来的反应者,我做错了什么吗? 问题答案: 在React中使用ES6语法不会绑定到用户定义的函数,但是会绑定到组件生命周期方法。 因此,您声