一から作成開始 … 作成編1

アプリ ソースコード家計簿アプリ

新プロジェクト作成

 状態:試行錯誤中  閲覧数:5,390  投稿日:2013-07-14  更新日:2013-07-29
・プロジェクト名「HouseholdAccount」新規作成

デフォルト表示内容
・アプリケーション名
・Hello world!


アプリケーション名


HouseholdAccount
※元アプリ表示 … 家計簿

▼/HouseholdAccount/res/values/strings.xml
<string name="app_name">"HouseholdAccount"</string>


▼/HouseholdAccount/AndroidManifest.xml
    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       android:theme="@style/AppTheme" >
       <activity
           android:name="android.style.householdaccount.MainActivity"
           android:label="@string/app_name" >



Hello world!


▼/HouseholdAccount/res/values/strings.xml
<string name="hello_world">Hello world!</string>


▼/HouseholdAccount/res/layout/activity_main.xml
<TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="@string/hello_world" />


▼/HouseholdAccount/src/android/style/householdaccount/MainActivity.java
public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


1.「アプリケーション名」変更

 閲覧数:393 投稿日:2013-07-14 更新日:2013-07-20

1.「アプリケーション名」変更


▼/HouseholdAccount/res/values/strings.xml
<string name="app_name">"家計簿20130714"</string>


・エミュレーター再起動
・表示変更を確認



2.起動後、初期表示画面

 閲覧数:411 投稿日:2013-07-18 更新日:2013-07-21

起動後、初期表示画面


複数画面が存在する時、起動後初期表示される画面はどこで決まるの?


ボタン配置


▼/src/android/style/householdaccount/MainActivity.java
	/* 変数の定義 */
private Button monthButton;
   private Button dateButton;
   private Button addButton;
   private Button deleteButton;
private TextView sumText;
private TextView yosanText;
private TextView nokoriText;
private TextView yosanText2;
private TextView nokoriText2;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

       /* コンポーネントの設定 */
       monthButton = (Button)this.findViewById(R.id.monthButton);
       dateButton = (Button)this.findViewById(R.id.dateButton);
       addButton = (Button)this.findViewById(R.id.addButton);
       deleteButton = (Button)this.findViewById(R.id.deleteButton);
       sumText=(TextView)this.findViewById(R.id.sumText);
//        yosanText=(TextView)this.findViewById(R.id.yosanText);
//        nokoriText=(TextView)this.findViewById(R.id.nokoriText);
//        yosanText2=(TextView)this.findViewById(R.id.yosanText2);
//        nokoriText2=(TextView)this.findViewById(R.id.nokoriText2);


▼/res/layout/activity_main.xml
    <Button
       android:id="@+id/monthButton"
       android:layout_width="120px"
       android:layout_height="wrap_content"
       android:text="月別"
       />
   <Button
       android:id="@+id/dateButton"
       android:layout_width="200px"
       android:layout_height="wrap_content"
       android:layout_marginLeft="20.0px"
       />
   <Button
       android:id="@+id/addButton"
       android:layout_width="80px"
       android:layout_height="wrap_content"
       android:background ="@android:drawable/ic_menu_add"
       android:layout_marginLeft="20.0px"
       />
   </LinearLayout>    
   
   <Button
       android:id="@+id/deleteButton"
       android:layout_width="200px"
       android:layout_height="wrap_content"
       android:text="一括削除"
       />
        <TextView
android:id="@+id/sumText"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="10.0px"
/>    



レイアウト設定


LinearLayout入れ子
考え方
・まず、LinearLayout「vertical」で、大枠を縦一列で作成
・その中で、横に配置したい箇所を、LinearLayout「horizontal」で水平指定
android:orientation … XML属性

match_parent
・「fill_parent」を「match_parent」へ変更
Android全レイアウトで共通利用できる「XML属性」及び「定数」

全体構成
・外側のLinearLayoutの方向を vertical(縦)、内側をhorizontal(横)
・幅と高さは、外側「LinearLayout」がいずれも「match_parent (画面全体)」であるのに対し、内側は「wrap_content」

2-1.初期画面リソース設定

 閲覧数:426 投稿日:2013-07-21 更新日:2013-07-24

文字列指定


▼/res/layout/activity_main.xml
android:text="@string/btn_label1"

▼/HouseholdAccount/res/values/strings.xml
<string name="btn_label1">月別</string>



日付ボタン


▼/res/layout/activity_main.xml
android:id="@+id/dateButton"

▼/src/android/style/householdaccount/MainActivity.java
・日付ボタン定義
	/* 変数の定義 */
private Button monthButton;//月別
private Button dateButton;//7月22日

        /* コンポーネントの設定 */
       monthButton = (Button)this.findViewById(R.id.monthButton);
       dateButton = (Button)this.findViewById(R.id.dateButton);

        /* ボタン内容の設定 */
       dateButton.setText(
        String.valueOf(calendar[1]+1)+"月"+String.valueOf(calendar[2])+"日");//StringクラスのvalueOf()メソッドを使ってString型に変換することで出力


・カレンダー変数定義
		/* 変数の設定 */
       int[] calendar=intentCalendar();


「Calendarクラス」ライブラリインポート
import java.util.Calendar;


エラーメッセージ
メソッド intentCalendar() は型 MainActivity で未定義です

メソッド定義
・インテントを受け取った場合は受け取った日付を、NULLだった場合は現在日付を返す?
・dateはカレンダー作成のために必要な、将来日付?
現在日時を基準に、常に変化していく?
	public int[] intentCalendar(){
Calendar calendar = Calendar.getInstance();//Calendarクラスのオブジェクトcalendarを生成
   int year = calendar.get(Calendar.YEAR);//現在の年を取得
   int month = calendar.get(Calendar.MONTH);//現在の月を取得
   int day = calendar.get(Calendar.DAY_OF_MONTH);//年の何番目の日かを取得
Intent intent1 = getIntent();
       year = intent1.getIntExtra("year",year);
       month = intent1.getIntExtra("month",month);
       day = intent1.getIntExtra("day",day);
       int date= year*10000+(month+1)*100+day;
       int[] calendarIntent={year,month,day,date};
       return calendarIntent;
}

Calendarクラスフィールド一覧


メニューアイコン指定


設定
@android:drawable/アイコン名

ic_menu_add
・「ic_menu_add」は、Androidがデフォルトで保持しているメニューアイコン
▼/res/layout/activity_main.xml
android:background ="@android:drawable/ic_menu_add"


上の線 … 初期表示画面

 閲覧数:482 投稿日:2013-07-21 更新日:2013-07-24

概要


・初期表示画面 … 「上の線」が表示されず苦しむ
・原因はメソッド呼出記述モレ
・「setText」メソッド内で呼び出している理由 … 不明

▼/res/layout/activity_main.xml
・XML定義
	<!--上の直線-->
   <LinearLayout
       android:id="@+id/Linear01"
       android:orientation="horizontal"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       >
   </LinearLayout>
<!-- ここまで上の直線 -->


▼/src/android/style/householdaccount/MainActivity.java
・メソッド定義 … XMLよりデータ取得
	/* メソッド定義 */
public void line(){
       LinearLayout linear1 = (LinearLayout) findViewById(R.id.Linear01);
       LinearLayout.LayoutParams liner01 = new LinearLayout.LayoutParams(480,3);
       Maindraw linerA = new Maindraw(this);
       linerA.setLayoutParams(liner01);
       linear1.addView(linerA);
}


・Maindrawクラス定義
class Maindraw extends View {

   public Maindraw(Context context) {
    super(context);
   }

   protected void onDraw(Canvas canvas) {
       super.onDraw(canvas);
       // 黒で塗る
       canvas.drawColor(Color.DKGRAY);
   }
}


・メソッド呼出
        /* ボタン内容の設定 */
       dateButton.setText(
        String.valueOf(calendar[1]+1)+"月"+String.valueOf(calendar[2])+"日");//StringクラスのvalueOf()メソッドを使ってString型に変換することで出力


//        yosanText.setText("今月の予算:30,000円");
//        nokoriText.setText("残り:13,500円");
//        yosanText2.setText("予算:1,000円");
//        nokoriText2.setText("残り:-700円(使い過ぎ!)");

       /* メソッド処理 */
       //SQLiteDatabase db=database();
       line();      
       
}


背景色 … 初期表示画面

 閲覧数:393 投稿日:2013-07-24 更新日:2013-07-24

概要


・同じ書き方をしているはずなのに、どうしても背景色が黒色にならない
・しょうがないので、ネットで調べた内容を追記
▼/res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"


合計:0円

 閲覧数:385 投稿日:2013-07-25 更新日:2013-07-25

概要


・この表示は、DB連携が必要みたいなので後回し
合計:0円
▼/src/android/style/householdaccount/MainActivity.java
//次のリストにカーソルを移す。
     sumText.setText("合計:"+String.valueOf(sum)+"円");


・とりあえず、ようやく初期表示画面が(今出来る範囲で)完成


コード理解 … 準備編3

2.「公開エントリー記載ソースコード」仕様



週間人気ページランキング / 5-12 → 5-18
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/5/19 1:01 更新