スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

TextView/EditText/Button/AlertDialog

xmlでレイアウトに様々な処理を加えました。
テキストボックスに文字を入れるてCHANGEボタンを押すと、ホップアップにそのテキストが表示されます。
ホップアップでYESを押すとホップアップが消え、"さんぷろいど"⇒"にゅーさんぷろいど"に変わります。NOでは何も起きずにホップアップが消えます。
 
package info.moepict.helloandroid; //個別に設定

/*import*/ //各々のクラスを使うのに必要。Eclipseまかせ。
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Sample extends Activity{ //基本的にActivityを継承。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample); //XMLのレイアウトを用いる[res/layout/sample.xml]
//main.xmlに書いたならR.layout.mainに

/*表示するもの一覧 */ // クラス名 変数名 = (クラス名)findViewById(R.id.id名);
final TextView text = (TextView)findViewById(R.id.text); //修飾子finalを入れろと言われたので
// (TextView)findViewById(R.id.text2); //今回は弄らないので不要
final EditText edit = (EditText)findViewById(R.id.edit);
Button button = (Button)findViewById(R.id.button);

/* tv */
//必要なら処理を書く(今回は特になし)

/* edit */

/* button */
button.setOnClickListener( new OnClickListener(){ //匿名クラス=スーパークラスOnClickListenerのサブクラス"名前の無し"を生成。
public void onClick(View v) { //クリック時の処理
AlertDialog.Builder ad = new AlertDialog.Builder(Sample.this); //AlertDialogを変数adに。右辺( )内は(クラス名.this)。
ad.setTitle("AlertDialogです。"); //AlertDialogのタイトル
ad.setMessage( edit.getText() ); //getText(既存のメソッド)でeditに入力した文字を表示
ad.setPositiveButton( "YES" , new DialogInterface.OnClickListener() { //引数1はボタンに表示するテキスト、引数2はnullでも可
public void onClick(DialogInterface dialog,int whichButton) { //処理 //引数はそのままで。
text.setText("にゅーさんぷろいど"); //setText(既存のメソッド)でtextに"にゅーさんぷろいど"を代入⇒textの表示が変わる
} //setText( edit.getText() );にすれば入力されたテキストを代入。
});
ad.setNegativeButton( "NO" , null ); //setPositiveButtonに同じ。//引数2がnullなのでNOを押しても処理は無い。
ad.show(); //表示
}
});

/* text2 */

}
}

以下のようになります。(一度、アラートダイアログでOKを押した後の状態)
TextView/EditText/Button/AlertDialog
スポンサーサイト

xmlでレイアウト

Androidアプリケーションをxmlでレイアウトしてみました。
javaで処理を加えたもの⇒TextView/EditText/Button/AlertDialog

なお、res/layout/にsample.xmlを作り(main.xmlをコピーペースト)書いていますが、main.xmlでも大丈夫です。
 
<?xml version="1.0" encoding="utf-8"?> <!-- 無くても良い? -->
<!-- LinearLayoutを使ったレイアウト -->
<!-- xmlnsは変更しない。 -->
<!-- orientationで並べ方を設定。垂直;vertical、水平;horizontal -->
<!-- layout_width;幅、layout_height;高さ。wrap_contentは必要分の幅、fill_parentは画面最大まで。 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<!-- TextView;テキストの表示 -->
<!-- id;"@+id/~~"で設定。javaで参照する際に必要。 -->
<!-- textはstring.xmlからも設定できる -->
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="さんぷろいど"
/>

<!-- 子ビュー(レイアウト内のレイアウト)ではheightをfill_parentにすると下部が表示されずエラー -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<!-- テキストボックスを作成 -->
<!-- hintはテキストボックス内に薄く表示され、テキストを入れると消える。 -->
<!-- layout_weight;幅の配分.値が小さいほど大きい(widthはfill_parentに).(ここでは2/3) -->
<!-- inputType;入力内容を指定。textだと文字入力(設定無しでもこれがデフォルト?)。 -->
<EditText
android:id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="テキトーに入れてね。"
android:inputType="text"
/>
<!-- ボタンを作成 -->
<!-- textがボタンに表示される文字 -->
<!-- layout_weightにより幅はここでは1/3 -->
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="CHANGE"
/>
</LinearLayout> <!-- 子ビューの終了 -->

<!-- 最初のTextViewに同じ。 -->
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="テスト中...。"
/>

</LinearLayout>

上記により次のようになります。
xml_LinearLayout

クラスの継承とコンストラクタ

クラスの継承とコンストラクタの関係が謎めいていたので、まとめてみました。
初心者のメモ的なやつなので、間違えがありましたらご指摘ください。


/*
* 継承したものはコンストラクタ内に挿入される。= super();
* 使用するには「クラス名 変数名 = new コンストラクタ名();」で記述する。
* 自分でコンストラクタを生成しない場合、中身が空のコンストラクタが自動的に生成される(デフォルトコンストラクタ)。
* 生成する場合はコンストラクタ名はクラス名に同じ名前にする。
*/

class Super{ //Subに対してはスーパークラス

private String yeah = "Super" ; //アクセスレベル:private=他クラス(サブクラス含)からの不可視。

public void setYeah( String yeah ){ //他のクラスからは、メソッドを経由してyeahにアクセス。
this.yeah = yeah ; //左辺のyearはクラスSuper全体の、右辺のyearはsetYeahメソッド内のみのyeah。
}

public String getYeah(){ //メンバメソッドもprivateだと他クラス(サブクラス含)からは不可視なのでpublicに。
return yeah ;
}

}

class Sub extends Super{ //スーパークラスSuperのサブクラス化=継承
/*
* コンストラクタはクラスが読み込まれた際に必ず実行される。
* コンストラクタには返り値はない(=void扱い)。
* アクセスレベルの設定は可(public,private...)。
* メソッドに似るが異なるものである。
*/
/* Sub(){ //記述しなくてもデフォルトコンストラクタとして生成される。
//super(); //記述しなくてもsuper();が最上部に挿入され、ここにスーパークラスのメンバが挿入される。
//記述する際はコンストラクタ内の最上部に記述すること。
*
* ~super()以降にメソッドなどが実行される~
* ここにスーパークラスと同名のメソッド(引数)を書くとオーバーライド(=上書き)される。
*
}*/

public static void main(String[] args) {
/*
* スーパークラスSuperの 変数:yeah を使用するには、
* コンストラクタSubを介する必要がある。
* Superはstaticではないのでオブジェクトを形成する必要がある。
*/
Sub SubYeah ; //クラスSubに対するオブジェクトSubYearを生成。←と↓はここでは同じ挙動。
//Sub⇒Superにするとスーパークラスに対したサブクラスのオブジェクトSubYearを生成。(サブクラスが複数のとき便利)
SubYeah = new Sub(); //SubYeahにSubを呼び出し実行(=new)。
//"SubYeah = "無しでもコンストラクタSub内は実行はされる。
//ここでのSubはクラスでありコンストラクタでもある。必要なら()内に引数。
SubYeah.setYeah( "Great!" );
System.out.println( SubYeah.getYeah() ); //継承したyeahの出力⇒"YEAH!!"が表示。
/* 簡略して書くと、
* Sub SubYeah = new Sub();
* System.out.println( SubYeah.getYeah() );
または
* System.out.println( new Sub().getYeah() );
なお、
* Subの部分をSuperに書き換えるとSuperクラスから直接引き出すことになる。(継承不要)
*/

}

}

Java始めました。

スマホユーザーが増える中、FLASHだけではダメだ!!
とか思ったわけではないのですが、持ち運びようのこのMacにはFLASHを作るソフトを入れていないので(Suzuka非対応)、外でも弄れるJavaのお勉強を始めました。

以前も言いましたがJavaに関する知識は皆無です。むしろFLASH以外は全く分かりません。
なので、とりあえず「Java 初心者」や「Java 入門」と検索して分かりやすそうなサイトを読んで試すことから始めました。

そして、とても参考になったサイト様がコチラ。

さて、Javaにおける目標はAndroidで動く待受けを制作すること!
すでに1回挫折しているので、いつまでかかるか分かりませんが頑張っていこうと思います。
もし、ある程度知識が溜まりましたらTipsとして記事を書きますー。

スネークゲーム風待受



スネークゲームを意識した待受けFLASHです。
色はランダムで7種表示されます。
(ここではFLASHを縮小表示してるので数字がぼけています。)

スクリプトは色々使っていますが、肝心なものは
  • for
  • attachMovie/removeMovieClip
  • new Color/setRGB

です。

ざっくり説明すると、
forとattachMovieを使って一気に■(.pdr)を入れたスプライトを画面上に引きつめ、
その■スプライトでさらにattachMovieを使いrandom()で上下左右いずれかに別の■スプライト'を配置します。
■スプライトにはnew ColorとsetRGBを使って、各々の■の色を変えてアクセントを出してます。
(ランダムに7種なのもnew ColorとsetRGBで色を設定しているためで、色の異なる■を用意しているわけでは有りません。)
いらなくなった■スプライトはremoveMovieClipで消して負荷を減らします。

こんな感じです。

プロフィール

クロワッサン@

Author:クロワッサン@
FLASHへの質問はコメントにて。

↓携帯サイトはコチラ

QRコード
*FLASHと画像で萌えサイト

カテゴリ

スポンサードリンク

検索フォーム

月別アーカイブ

最新記事

最新コメント

Twitter

Twitter < > Reload

Copyright © クロワッサン@
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。