新プロジェクト作成
状態:試行錯誤中
閲覧数:5,475
投稿日:2013-07-14
更新日:2013-07-29
・プロジェクト名「HouseholdAccount」新規作成
デフォルト表示内容
・アプリケーション名
・Hello world!
HouseholdAccount
※元アプリ表示 … 家計簿
▼/HouseholdAccount/res/values/strings.xml
▼/HouseholdAccount/AndroidManifest.xml
▼/HouseholdAccount/res/values/strings.xml
▼/HouseholdAccount/res/layout/activity_main.xml
▼/HouseholdAccount/src/android/style/householdaccount/MainActivity.java
デフォルト表示内容
・アプリケーション名
・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.「アプリケーション名」変更
2.起動後、初期表示画面
起動後、初期表示画面
・複数画面が存在する時、起動後初期表示される画面はどこで決まるの?
ボタン配置
▼/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.初期画面リソース設定
文字列指定
▼/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"
上の線 … 初期表示画面
概要
・初期表示画面 … 「上の線」が表示されず苦しむ
・原因はメソッド呼出記述モレ
・「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();
}
背景色 … 初期表示画面
概要
・同じ書き方をしているはずなのに、どうしても背景色が黒色にならない
・しょうがないので、ネットで調べた内容を追記
▼/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"