2016-11-29 5 views
1

アクティビティでレイアウトを開始する前にメソッドを実行する必要があります。 onCreate()を実行する必要があるメソッドを呼び出すと、レイアウトが設定される前に実行されますか?Android:アクティビティでレイアウトを開始/作成する前にメソッドを実行する方法

なぜなら、レイアウトを開始する前にレイアウトに表示されている情報を返すメソッドが必要なためです。これに関するいくつかのフィードバックが大好きです。アンドロイドStudioで作成した

+0

アクティビティのライフサイクルについてお読みください。 –

+0

'onCreate()'はおそらく場所ですが、あなたの状況によって異なります。あなたの質問にはより多くの情報が必要だと思います。 – PPartisan

+1

'レイアウトが設定される前に実行されますか?'はい、 'setContentView()'を呼び出す前にメソッドを呼び出してください。 –

答えて

4

を使用して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); 
    } 
} 
+1

ありがとうございました!これは私が探していたものです:) – user3519023

+0

あなたは大歓迎です:) –

3

デフォルトの活動は、次のコード

@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を膨らませることができます。

3

onCreate()で、好ましくはsetContentView()を呼び出す前に行います。

ただし、受信するデータがネットワークからのものである場合は、別のThreadで取得されます(ネットワークThreadではネットワークコールが行われないため)。この状況では、データが取得される前にレイアウトがほぼ確実に表示されます。

ソリューションは、あなたがそうのようなsetContentView前にあなたが好きなものは何でもできますが、Activityを開始する前に、データの一部を取得Intent中などの追加を渡し、その後getIntent().getStringExtra()

3

おそらくsetContentView()Activity.onCreate()であなたのレイアウトを膨張されているので、あなたはsetContentView()への呼び出し前に、その方法では、あなたの関数呼び出しを配置する必要があります。

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    yourFunctionCallHere(); 

    setContentView(R.layout.act_main); 
} 
関連する問題