![](/img/trans.png)
[英]Android SQLite convert time in onCreate method before passing it into object
[英]Adding an object to a list before onCreate method in an Activity in android studio
我只是对某些事情感到好奇,所以我尝试以这种方式编写一些代码:
package com.bignerdranch.android.geoquiz;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Button trueButton, falseButton, nextButton;
private ArrayList<Question> questionList = new ArrayList<Question>();
private int currentIndex = 0;
private TextView questionTextView;
questionList.add(new Question(R.string.question_australia,true));
questionList.add(new Question(R.string.question_oceans, true));
questionList.add(new Question(R.string.question_mideast, false));
questionList.add(new Question(R.string.question_africa, false));
questionList.add(new Question(R.string.question_americas, true));
questionList.add(new Question(R.string.question_asia, true));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trueButton = findViewById(R.id.true_button);
falseButton = findViewById(R.id.false_button);
nextButton = findViewById(R.id.next_button);
questionTextView = findViewById(R.id.question_text_view);
Toast toast = Toast.makeText(this,R.string.correct_toast,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP,0,0);
trueButton.setOnClickListener((View v) ->{
toast.show();
});
falseButton.setOnClickListener((View view) -> {
toast.show();
});
}
}
但似乎只有当我在 onCreate 方法之前添加这些问题对象时才会发生错误。
代码工作的示例:
package com.bignerdranch.android.geoquiz;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Button trueButton, falseButton, nextButton;
private ArrayList<Question> questionList = new ArrayList<Question>();
private int currentIndex = 0;
private TextView questionTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
trueButton = findViewById(R.id.true_button);
falseButton = findViewById(R.id.false_button);
nextButton = findViewById(R.id.next_button);
questionTextView = findViewById(R.id.question_text_view);
Toast toast = Toast.makeText(this,R.string.correct_toast,Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP,0,0);
trueButton.setOnClickListener((View v) ->{
toast.show();
});
falseButton.setOnClickListener((View view) -> {
toast.show();
});
questionList.add(new Question(R.string.question_australia,true));
questionList.add(new Question(R.string.question_oceans, true));
questionList.add(new Question(R.string.question_mideast, false));
questionList.add(new Question(R.string.question_africa, false));
questionList.add(new Question(R.string.question_americas, true));
questionList.add(new Question(R.string.question_asia, true));
}
}
为什么在 onCreate 方法之前将对象添加到列表时会显示错误? 我真的希望我能得到一个专业的答案,这样我才能更好地理解 onCreate 方法。
这里有2个问题:
String text = "hello".substring(3)
可以工作,而单独使用"hello".substring(3)
不行。onCreate()
之前无法访问任何资源。 与在程序启动时调用的 static 部分( static {...}
)中执行的代码不同,可以多次调用 onCreate 方法(例如,我单击后退按钮 [并且没有对 Z34D16B61FB2E5A8A18 的活动)返回]。活动停止但应用程序没有关闭。当我重新打开应用程序时,它仍然启动,就像程序一样。findViewById()
onCreate()
中调用setContentView()
) ,因为 Android 需要知道它应该从哪个布局获取视图,这是另一个主题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.