目次:
- 大文字をどこに置くか
- switch
- if(inputNumber = randomNumber)
- }
- 非静的参照の修正
- 配列のコンポーネントを参照することができます
- // findViewById行は忘れてしまいます。
- アプリの2番目のアクティビティを作成する場合は、アプリの
- クラスを見つけることができません。 java
ビデオ: Advanced Data Binding - Google I/O 2016 2024
誰もが間違いを犯します。それは人生の事実です。しかし、ここでアドバイスを受けていれば、Javaプログラミングの事実である必要はありません。
大文字をどこに置くか
Javaは大文字と小文字を区別する言語なので、実際には p と q アルファベットのJavaプログラムを作成するときに留意すべきいくつかの概念があります。
<! --1 - >- Javaのキーワードはすべて完全に小文字です。たとえば、Java
if
ステートメントでは、 ifまたは IFの場合、 は とすることはできません。 Androidのアプリケーションプログラミングインターフェイス(API)から名前を使用する場合、名前の大文字と小文字はAPIに表示されるものと一致する必要があります。 - 自分で作った名前は、プログラム全体を通して同じ方法で大文字にする必要があります。
- myAccount
変数を宣言すると、その変数を
MyAccount、
myaccount、または
Myaccountとして参照することはできません。変数名を2つの異なる方法で大文字にすると、Javaは2つの全く異なる変数を参照していると考えます。
<! switch文の中断
switch
文を中断しないと、フォールスルーが発生します。たとえば、
roll
の値が
7
の場合、次のコードは
win
、
continue
、および >失う
:
スイッチ(ロール){
ケース7:
textView。 setText( "win");ケース10:
<! - 3 - >
textView。 setText( "continue");
ケース12:
textView。 setText( "lose");
値を二重等号
と比較する2つの値を比較するときは、二重等号を使用します。
if(inputNumber == randomNumber)
の行は正しいが、
if(inputNumber = randomNumber)
という行は正しくない。
イベントを処理するためのリスナーの追加
ユーザーがウィジェットをクリックしたとき、アニメーションが終了したとき、または何かが発生したときにリスナーを作成するようにしたい場合
public class MainActivity extends Activity
implements (999)…
}
public void onAnimationEnd(アニメーションアニメーション){
…
} < リスナーを作成するときは、リスナーを設定する必要があります。 ImageView widget = new ImageView(this);
ウィジェット。
setOnClickListener
(これ);
<! - 1 - >
…
AlphaAnimationアニメーション=新しいAlphaAnimation(0。0F、1.0F);
アニメーション。
setAnimationListener
(これ);
…setOnClickListener
必要なコンストラクタの定義
<!のようにパラメータを使用してコンストラクタを定義すると、 - 2 - > <! - 1 - >
public Temperature(double number) Javaはもはやデフォルトのパラメータレスコンストラクタを作成しません。つまり、 Temperature roomTemp = new Temperature();を呼び出すことはできません。
独自のパラメータなし
Temperature
コンストラクタを明示的に定義しない限り、
非静的参照の修正
次のコードをコンパイルしようとすると、エラーメッセージが表示されます。
クラスWillNotWork {
String greeting = "Hello";
static void show(){
textView。 setText(挨拶);
}
}
show
メソッドは静的ですが、
greeting
は静的ではないため、エラーメッセージが表示されます。
配列の範囲内に留まる
10個のコンポーネントを持つ配列を宣言すると、そのコンポーネントのインデックスは0から9です。つまり、
<! - 3 - >
int guests [] =新しいint [10];
ゲスト[0]
、
ゲスト[1]
などを書いて
ゲスト
配列のコンポーネントを参照することができます
ゲスト[9]
ゲスト
配列にはインデックス10のコンポーネントがないため、
ゲスト[10]
を書くことはできません。
Nullポインタの予期
A
NullPointerException
「正当な」値を持たない式のメソッドを呼び出すときに発生します。次に例を示します:
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState){
super。 onCreate(savedInstanceState);
setContentView(R。レイアウト。activity_main);
// findViewById行は忘れてしまいます。
}
public void onButtonClick(表示ビュー){
textView。 setText( "Hello");
}
}
Javaでは、何も指さない参照型変数の値は
null
です。したがって、この例では、
textView
変数の値は
null
です。
null
の値に対して
setText
メソッドを呼び出すことはできません。その点については、
null
値ではメソッドを呼び出すことはできません。 Javaが
textViewを実行しようとするとき。 setText( "Hello")
、アプリケーションがクラッシュします。ユーザーは
アプリケーション停止
メッセージを確認します。 Android Studioを使用してアプリをテストする場合は、[Logcat]ペインに
NullPointerException
が表示されます。
このような災害を避けるには、コード内のメソッド呼び出しを2回考えます。ドットの前の式が
null
の場合、例外処理コードをプログラムに追加します。
public void onButtonClick(View view){
try {
textView。 setText( "Hello"); } catch(NullPointerException e){ トースト。 makeText(これは「アプリがエラーから回復しました。」、
トーストLENGTH_LONG)。 show();
}
}
権限の使用
一部のアプリケーションでは明示的な権限が必要です。たとえば、インターネット経由でTwitterのサーバーと通信するアプリがあります。これは、アプリケーションの
AndroidManifestに
要素を追加しない限り機能しません。xml
ファイル:
AndroidManifestに
要素を追加することを忘れた場合。 xml
ファイルの場合、アプリはTwitterのサーバーと通信できません。有用なエラーメッセージを表示せずにアプリケーションが失敗します。残念な!
アクティビティが見つかりません
アプリの2番目のアクティビティを作成する場合は、アプリの
AndroidManifestに新しい
要素を追加する必要があります。 xml
ファイル。要素は
のように単純なものにすることができますが、ほとんどの場合、要素はもう少し複雑です。
この
要素を追加しないと、Androidは
MySecondAcitivityであっても
MySecondActivity
クラスを見つけることができません。 java
ファイルはアプリのプロジェクトディレクトリにあります。あなたのアプリは
ActivityNotFoundException
でクラッシュします。
そしてそれはすべての違いを生み出します。