1

私はいくつかのWeb開発の経験があり、Androidアプリの構築方法を学んでいます。

XMLレイアウトでは、プログラムロジックと(UI-)レイアウトを分離できることを理解しています。これは、JavaScriptをHTML/CSSから分離することに類似しているようです。

しかし、サーバー側のスクリプト言語の役割を果たすものは何でしょうか。つまり、ユーザーがクリックして再生できるオーディオファイルのリストがある場合、XMLレイアウトを自動生成するにはどうすればよいですか(Webの世界では、HTMLとPHPをインターリーブすることで実行できます)。それとも私はこれをプログラムで行うことを余儀なくされていますか?

4

2 に答える 2

2

Webプログラミングの世界では、クライアントはサーバーから物理的に分離されているため、動的なクライアント操作のためのjavascriptと、データを処理するためのサーバー側言語が必要です。Androidの世界では、ビューとコードの両方が同じデバイス(デスクトップアプリなど)で実行されているため、ビューでスクリプトを作成する必要はありません。このため、Androidのxmlレイアウトは、単純なHTMLファイルのように、完全に静的なレイアウト定義です。ユーザーがそのレイアウトを操作したときに何が起こるかは、このレイアウトを使用しているアクティビティのコードで定義する必要があります。このコードは、ユーザーイベント(javascript)を処理し、それらを処理します(サーバー側の言語)。

あなたの例を使用して、オーディオファイルのリストがあり、スピナーを使用してユーザーが1つを選択できるようにしたと仮定すると、onClickListenerまたはバリアントを使用してイベントハンドラーをアタッチし、アプリケーションにいつ何をすべきかを指示する必要があります。ユーザーがそれを選択します。ListViewを使用する場合は、通常、ListActivityを拡張してから、ユーザーがクリックしたときに実行されるアクションのonListItemClick()をオーバーライドします。

Webプログラミングの世界では、これはページ上の要素にjavascriptイベントハンドラーをアタッチすることに似ています。このハンドラーは、ユーザーがアクションを実行したときに応答し、通常はデータをサーバーに送信してさらに処理します。

つまり、はい、ユーザーのアクションに応答するコードを作成する必要があり、(スクリプト)コードをレイアウトファイルにインターリーブすることはできません。

通常のフローは次のようになります。1。xmlでレイアウトを定義します。2。アクティビティのonCreateでsetContentViewを使用して、使用しているレイアウトを示します。3. Rオブジェクトを使用して、findViewByIdを使用してidでレイアウトに定義された要素を取得します。ユーザーがアクションを実行したときに応答するこれらの要素へのイベントハンドラー。

于 2012-05-01T14:36:52.417 に答える
0

オーディオファイルのリストについては、おそらくListViewを使用することをお勧めします。XMLレイアウトでListViewを宣言すると、アクティビティ内でListViewのハンドルを取得し、ファイルのリストで埋めるアダプターを設定できます。つまり、XMLとプログラムによるレイアウトのほんの少しです。必要に応じて、いつでも両方を実行できます(プログラムでレイアウトに追加できます)。

于 2012-05-01T14:18:46.717 に答える