アクティビティでレイアウトを開始する前にメソッドを実行する必要があります。 onCreate()を実行する必要があるメソッドを呼び出すと、レイアウトが設定される前に実行されますか?Android:アクティビティでレイアウトを開始/作成する前にメソッドを実行する方法
なぜなら、レイアウトを開始する前にレイアウトに表示されている情報を返すメソッドが必要なためです。これに関するいくつかのフィードバックが大好きです。アンドロイドStudioで作成した
アクティビティでレイアウトを開始する前にメソッドを実行する必要があります。 onCreate()を実行する必要があるメソッドを呼び出すと、レイアウトが設定される前に実行されますか?Android:アクティビティでレイアウトを開始/作成する前にメソッドを実行する方法
なぜなら、レイアウトを開始する前にレイアウトに表示されている情報を返すメソッドが必要なためです。これに関するいくつかのフィードバックが大好きです。アンドロイドStudioで作成した
を使用してonCreate()
に取得するために、次のようになります。
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int i = 0;
setContentView(R.layout.main);
}
}
限り、あなたは
まだ膨らまされていない景色と相互作用しないよう210は、例えば、これは誤りです:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ERROR, CAN'T TOUCH UI ELEMENTS
ImageView img = (ImageView)findViewById(R.id.img);
setContentView(R.layout.main);
}
}
ありがとうございました!これは私が探していたものです:) – user3519023
あなたは大歓迎です:) –
デフォルトの活動は、次のコード
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Here is code, that executed before layout inflated
setContentView(R.layout.example_activity); //This line inflates layout
}
が含まれているところで、あなたもsetContentView
を削除し、レイアウトprogrammaticalyを膨らませることができます。
onCreate()
で、好ましくはsetContentView()
を呼び出す前に行います。
ただし、受信するデータがネットワークからのものである場合は、別のThread
で取得されます(ネットワークThread
ではネットワークコールが行われないため)。この状況では、データが取得される前にレイアウトがほぼ確実に表示されます。
ソリューションは、あなたがそうのようなsetContentView前にあなたが好きなものは何でもできますが、Activity
を開始する前に、データの一部を取得Intent
中などの追加を渡し、その後getIntent().getStringExtra()
おそらくsetContentView()
とActivity.onCreate()
であなたのレイアウトを膨張されているので、あなたはsetContentView()
への呼び出し前に、その方法では、あなたの関数呼び出しを配置する必要があります。
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
yourFunctionCallHere();
setContentView(R.layout.act_main);
}
アクティビティのライフサイクルについてお読みください。 –
'onCreate()'はおそらく場所ですが、あなたの状況によって異なります。あなたの質問にはより多くの情報が必要だと思います。 – PPartisan
'レイアウトが設定される前に実行されますか?'はい、 'setContentView()'を呼び出す前にメソッドを呼び出してください。 –