![](/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.