東北TECH道場
ープログラミングの基本ー
東北TECH道場講師 高橋憲一
https://goo.gl/9cX6zf
このスライドのurl
プログラミングの基本要素
前準備
新規プロジェクト作成
前準備
activity_main.xml に黄色の行を追加
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:id="@+id/textview"
android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
変数
計算結果や文字列などを入れておくための箱
String, int 等。
MyActivity.java
黄色の行を入力してみましょう。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String greeting = "こんにちは";
TextView textView = (TextView) findViewById(R.id.textview);
textView.setText(greeting);
}
String greeting = "こんにちは";
String … 変数の型。文字列型
greeting … 変数の名前
= … 代入を意味する。
"こんにちは" … 代入する内容。
” で囲むと文字列
分岐
if (条件式){
….
} else {
….
}
時間で挨拶を変えてみる
現在時刻を取得して分岐させる
緑色の行を入力してみましょう。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String greeting = "こんにちは";
Date trialTime = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(trialTime);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 0 && hour < 12) {
greeting = "おはよう";
} else if (hour > 15) {
greeting = "こんばんは";
}
TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(greeting);
これから作るアプリ
睡眠誘導アプリ
MainActivity.java
黄色の行を入力してみましょう。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String greeting = "こんにちは";
Date trialTime = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(trialTime);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 0 && hour < 12) {
greeting = "おはよう";
} else if (hour > 15) {
greeting = "こんばんは";
}
greeting += "。。。ひつじが1匹。。。ひつじが2匹。。。ひつじが3匹。。。";
TextView textView = (TextView) findViewById(R.id.textview);
textView.setText(greeting);
}
眠れるまで何十回も書くのか?
ループ(繰り返し処理)
ひつじが1匹
ひつじが2匹
ひつじが3匹
.
.
.
for ループ
for (i = 1; i < 10; i++ ) {
}
i … カウンタ
i < 10 … 条件式
i++ 回数カウント
MainActivity.java
黄色の行を入力してみましょう。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String greeting = "こんにちは";
Date trialTime = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(trialTime);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 0 && hour < 12) {
greeting = "おはよう";
} else if (hour > 15) {
greeting = "こんばんは";
}
int sheepNum = 10;
for (int i = 1; i <= sheepNum; i++) {
greeting += "。。。ひつじが" + i + "匹";
}
TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(greeting);
}
もっとインタラクティブに
画面をタップするとカウントするように。
前準備
activity_main.xml に黄色の行を追加
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/rootLayout"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView android:id="@+id/textview"
android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
MainActivity.java
黄色の行を入力、緑の部分を修正、赤の部分を削除してみましょう。
public class MainActivity extends AppCompatActivity {
TextView textView;
int sheepCount = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String greeting = "こんにちは";
Date trialTime = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(trialTime);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (hour > 0 && hour < 12) {
greeting = "おはよう";
} else if (hour > 15) {
greeting = "こんばんは";
}
int sheepNum = 10;
for (int i = 1; i <= sheepNum; i++) {
greeting += "。。。ひつじが" + i + "匹";
}
(次ページに続く)
MainActivity.java (続き)
(前ページからの続き)
greeting += "。。。ねむれませんか?";
TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(greeting);
View view = findViewById(R.id.rootLayout);
view.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sheepCount++;
String text = "ひつじが" + sheepCount + "匹";
textView.setText(text);
}
});
}
この後は...