個人財務 プログラミング:新しいJavaプロジェクトを開始したときのダミー

プログラミング:新しいJavaプロジェクトを開始したときのダミー

目次:

ビデオ: Day 2 Keynote (GDD Europe '17) 2024

ビデオ: Day 2 Keynote (GDD Europe '17) 2024
Anonim

新しいJavaプロジェクトを開始すると、Android Studioはプロジェクトのアクティビティを作成します。 Android Studioには、基本アクティビティ、空のアクティビティ、ログインアクティビティなど、さまざまな種類のアクティビティが用意されています。空のアクティビティを求める場合は、次のコードを取得します。

package com。 allyourcode。 a10_11;

インポートアンドロイド。サポート。 v7。アプリ。 AppCompatActivity;

<! - 1 - >

インポートアンドロイド。 os。バンドル;

public class MainActivityは、AppCompatActivityを拡張します。

@Override

protected void onCreate(Bundle savedInstanceState){

super。 onCreate(savedInstanceState);

setContentView(R。レイアウト。activity_main);

}

}

- 2 - >

コードは MainActivity という名前のクラスを宣言します。この名前 MainActivity は、Android APIライブラリの一部ではありません。これは、新しいAndroidプロジェクトを作成するときに補う名前です。

MainActivity クラスは、新しいプロジェクトを作成する手順に従うときに、名前を受け入れるか、別の名前に変更します。 MainActivity クラスは、 AndroidのSDKライブラリ、つまり AppCompatActivity クラスに追加します。言い換えると、 MainActivity オブジェクト は、 AppCompatActivity オブジェクトである。 MainActivity オブジェクトは、 AppCompatActivity インスタンスが持つすべての権利と責任を持ちます。たとえば、 MainActivity には onCreate

メソッドがあり、オーバーライドします。

<!実際、 MainActivity クラスは、Androidの AppCompatActivity クラスから約460行のコードを継承します。これは、Androidの FragmentActivity クラスは、AndroidのActivityクラスから約6,700行を継承しています。継承されたメソッドには、 getCallingActivity getCallingPackage getParent getTitle getTitleColor < onKeyLongPress onLowMemory onMenuItemSelected setTitle setTitleColor startActivity 、終了、およびその他の多くのものが含まれる。この機能をすべて継承するには、extends AppCompatActivity という2つの簡単な単語を使用します。 家族関係の用語では、あなたの MainActivity クラスはAndroidの 活動 クラスの子孫です。あなたの MainActivity クラスは Activity の一種です。

Androidのオンラインドキュメントから直接取ったこの画像は、 AppCompatActivity クラスに関するこの情報を要約しています。 AppCompatActivityファミリーツリー。 このページをブックマークすると、AndroidのAPIライブラリのドキュメントに簡単にアクセスできます。 AppCompatActivity クラスは、サブクラスであることに加えて、 AppCompatCallback インタフェース、

TaskStackBuilder インタフェースなどの一連のインタフェースを実装します。あなたはこれを覚える必要はありません。あなたがそれを知る必要があるなら、あなたはAndroidのドキュメンテーションページでそれを見ることができます。 Javaのスーパーキーワードrevisited

という単語

super

は、スーパークラスのコンストラクタを表します。別のコードでは、 スーパー キーワードをさまざまな方法で使用していました。はい、 スーパー は常にクラスの親クラスと関係があります。しかし、いいえ、 super は常に親クラスのコンストラクタを参照するとは限りません。

onCreate

メソッドでは、呼び出しは superです。 onCreate(savedInstanceState) は、 savedInstanceState を親クラスの onCreate メソッドに送信します。親クラスは、 AppCompatActivity クラスです。そこでJavaは

AppCompatActivit yクラスの onCreate メソッドを呼び出します。 AppCompatActivity クラスの onCreat メソッドには、 superに対する独自の呼び出しが含まれています。 onCreate(savedInstanceState) AppCompatActivity クラスの親は、 FragmentActivity クラスです。 Javaは

savedInstanceState FragmentActivity クラスの onCreate メソッドに渡します。等々。 Activity クラス(M ainActivity クラスの曽祖父母)に到達するまで、コードは savedInstanceState 変数を直接使用しません。この savedInstanceState 情報から、コードはアクティビティを、システムがそれを破壊する前の状態に戻します。 キャスティング、もう一度

findViewById を呼び出すと、Javaはどのような種類のビューが見つかるかわかりません。 findViewById メソッドは常に View インスタンスを返しますが、多くのAndroidクラスは View クラスを拡張します。たとえば、 ボタン

TextView ImageView CheckBox クロノメーター 、および はすべてAndroidの View クラスを拡張しています。次のコードを入力した場合: //これをしないでください! ! TextView textView; textView = findViewById(R。id。textView); findViewById の呼び出しで返されたオブジェクトが TextView クラスのインスタンスを参照していると仮定した場合、どのようにして返事が返されますか? (実際には、Androidスタジオのエディタに 互換性のないタイプ エラーメッセージが静かに表示され、機械的に表示されます)。 Narrowing は、999未満の

値を

> int

値。長い999の値は64ビットであり、999の整数の999の値は32ビットしかない。だから狭めようとする試みは失敗する。ここで見つけたコードでは、

findViewById 呼び出しが、 TextView 変数へのメソッド呼び出しによって返された View 値の割り当てを絞り込む別の試みです。 TextView

クラスは View クラスのサブクラスなので、割り当ては悲惨に失敗します。コードにキャスト演算子を追加することにより、Java(登録商標)の神を鎮静化する(999)。 findViewById メソッド呼び出しのポップアップを TextView オブジェクトに変換するようJavaに指示します。 textView = (TextView) findViewById(R。id。textView1); TextView と古い View コードの違いを認識していることをキャスト演算子が示しています。 。実行時に TextView オブジェクトとして見つかった View オブジェクトを解釈するために最善を尽くします。 "(実際には、コードを入力している間、Javaは何も言わない)このキャスティングトリックを使用するとJavaがエラーメッセージを表示しないという事実は良い兆候である、Javaのキャスト機能がその日を節約する!) コードを開発する際にエラーメッセージが表示されないようにします。そのようにして、キャストはJavaの非常に便利な機能です。しかし、コードに実行時エラーが含まれていると、キャストによって保存できません。 と入力すると、textView =(TextView)findViewById(R。id。textView1);

名前 textView TextView ウィジェットを表すことを確認します。アプリケーションが実行されると、Javaは

Rを取得します。 id。 activity_mainのtextView ウィジェット。 xml

ファイルであり、すべて正常に動作します。しかし、時にはあなたの Rをチェックすることを忘れるかもしれません。 java の名前をXMLファイルのコンポーネントと比較します。 findViewById を呼び出すと、キャストが TextView ウィジェットを期待するようにJavaに指示すると Button コンポーネントが驚くほど吐き出されます。これが起こると、実行中にキャスト演算子のJavaチョークとアプリケーションがクラッシュします。ふりだしに戻る!

プログラミング:新しいJavaプロジェクトを開始したときのダミー

エディタの選択

Drupalフォーラムの有効化 - ダミー

Drupalフォーラムの有効化 - ダミー

フォーラムはユーザーコミュニティを作成するのに最適です。人々は他者からの援助を得ることができ、あなたのコンテンツに関するフィードバックを提供し、単純に社会化することができます。あなたのDrupalフォーラムは、あなたが望むようにしっかりとまたはゆるやかに制御することができます。フォーラムで許可されているカテゴリを制御できます。フォーラムの例を見るには、Drupal Forumを参照してください。 ...

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ウェブホスティング会社は、あなたがDrupalをインストールし、あなたのサイトをウェブ上に見えるようにするWebサーバー。一部の企業では、Drupalをインストールしたり、ワンクリックでインストールすることができます。あなたがDrupalのインストールをスキップする場合は、次のいずれかのアカウントを取得することを検討してください。

Drupalガーデンサイト構造管理 - ダミー

Drupalガーデンサイト構造管理 - ダミー

Drupal Garden Structureページでは、 、ページ、およびブロックを表示します。このページから制御できる特定の機能、ブロック、およびページには、連絡先フォーム、フォーラム、メーリングリストなどがあります。ブロックで表示される機能をブロックで管理することもできます。

エディタの選択

エグゼクティブとのデータマイニング - ダミー

エグゼクティブとのデータマイニング - ダミー

数字で遊ぶという楽しみのためにデータマイニングに取り掛からない。あなたは行動を望む。あなたは正しいことを見たいと思っています。データからの確かな証拠に基づいてビジネス上の決定を下すことが重要であることを理解しています。しかし、あなたは決定を下す権限を持つ人ではありません。だからあなたは...

ビッグデータガバナンスチャレンジ - ダミー

ビッグデータガバナンスチャレンジ - ダミー

データガバナンスは、大きなデータソースが彼らがどのように管理されているか。従来のデータウェアハウスやリレーショナルデータベース管理の世界では、データ保護の必要性に関するルールをよく理解している可能性があります。たとえば、医療界では、それは...

エディタの選択

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

赤外線を電気的に生成するには、赤外線スペクトルで動作する特殊な発光ダイオード(LED)を使用します。赤外線LED(しばしばIR LEDと呼ばれる)は、RadioShackまたは電子部品を販売する他の店で容易に入手できます。 IR LEDは、通常のLEDと似ていますが、光を見ることはできません。

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

を通して、あなたの電子プロジェクトを制御する場合パラレルポートであるKit 74 DOSソフトウェアは、コマンドプロンプトから実行できるRELAY、DELAY、WAITFORの3つのコマンドで構成されています。 RELAYコマンドRELAYコマンドは、1バイトのデータをパラレルポートに送信します。あなたから実行できること - RELAY、DELAY、およびWAITFOR - 8つの出力端子のそれぞれが...

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

、フリップフロップは特殊なタイプのゲートラッチ回路です。フリップフロップにはいくつかの異なるタイプがあります。フリップフロップの最も一般的なタイプは次のとおりです。SRフリップフロップ:SRラッチに似ています。 CLOCK入力に加えて、SRフリップフロップにはSETとRESETという2つの入力があります。 SET入力がHIGHの場合...