私はプログラミング言語の経験はありますが、アンドロイドプログラミングには少し慣れています。Android;クラス本体でのedittextの宣言(どのメソッドからでも)
私はラベル(テキストビュー)、ボタン、およびデータ入力(edittext)として機能するいくつかのフィールドを持つプログラムを持っています。
私はアプリケーションの起動時に、(もちろんクラス内の)どのメソッドからでもプログラムの冒頭に宣言すると、クラッシュし、シミュレーションは "残念なことに、あなたのプログラムは停止しました"という警告を出します。
Eclipseは宣言にエラーを与えません。私は問題のない通常の変数を定義するために同じ方法を使用しました。また、クラス本体にmediaplayerオブジェクトを宣言すると、同じエラーが発生します。
誰にエラーが発生するのですか? そして、edittext、viewtextなどのグローバルオブジェクトを宣言する別の方法があります...それらを何度も繰り返し宣言すると、私には奇妙な音がします。
ありがとうございました!
パブリッククラスTrainerActivityアクティビティ{
Button stopTimer = (Button)findViewById(R.id.StopTimer);
Button startTimer = (Button)findViewById(R.id.StartTimer);
EditText totalTime = (EditText)findViewById(R.id.TotalTime);
EditText enterMin = (EditText)findViewById(R.id.EnterMin);
EditText enterSec = (EditText)findViewById(R.id.EnterSec);
private boolean breaker = false;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Button_StartTimer();
}
});
stopTimer.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Button_StopTimer();
}
});
}
良い推測バディ:)私がしようとしていましたfindViewByIdを使用します。問題は、自分のメソッドで同じオブジェクトを何度も何度もやり直して使用したくないということです。 OnCreateでそれらを開始すると、言語制限のためにOnCreateで開始されます。ここで何かが見つからない場合は修正してください。この場合、xmlオブジェクトを作成してグローバルに開始することは可能ですか? MisterSquonkが提供したサンプルコードは、私がやっていたものです。 –
'onCreate(...) 'で' findViewById(...) 'を呼び出すと、' Activity'のスコープ内のさまざまなオブジェクトを指し続けるでしょう。言い換えれば、MyActivityが破棄されるまで、上記のコード内の 'tv1'は' MyActivity'のすべてのメソッドに対して有効です。 – Squonk