minSDKの変更
Gradle Scripts > build.gradle(Module:app)
minSdkVersion 24
を変更する
リソースIDをループで取得
for(int i = 0; i < btnTable.length; i++){ String btnId = "btn"+(i+1); int resId = getResources().getIdentifier(btnId, "id", getPackageName()); btnTable[i] = (Button)findViewById(resId); btnTable[i].setOnClickListener(this); }
電卓
機能
・電卓アプリ
・整数値の入力
・小数点での結果の出力
activity_main.xml
MainActivity.java
package com.example.orisa.mytablelayout1; import android.content.DialogInterface; import android.content.Intent; import android.support.annotation.StringDef; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity implements View.OnClickListener { //部品の変数 Button btn0; Button btn1; Button btn2; Button btn3; Button btn4; Button btn5; Button btn6; Button btn7; Button btn8; Button btn9; Button divBtn; Button mulBtn; Button minBtn; Button addBtn; Button equalBtn; Button clearBtn; Button[] btnTable = new Button[15]; TextView tv; //その他の変数 String left = "";//演算子の左側 String right = "";//演算子右側 String op;//演算子 boolean opIsClicked = false;//演算子がクリックされてればtrue @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 btn0 = (Button)findViewById(R.id.btn0); btn1 = (Button)findViewById(R.id.btn1); btn2 = (Button)findViewById(R.id.btn2); btn3 = (Button)findViewById(R.id.btn3); btn4 = (Button)findViewById(R.id.btn4); btn5 = (Button)findViewById(R.id.btn5); btn6 = (Button)findViewById(R.id.btn6); btn7 = (Button)findViewById(R.id.btn7); btn8 = (Button)findViewById(R.id.btn8); btn9 = (Button)findViewById(R.id.btn9); divBtn = (Button)findViewById(R.id.divBtn); mulBtn = (Button)findViewById(R.id.mulBtn); minBtn = (Button)findViewById(R.id.minBtn); addBtn = (Button)findViewById(R.id.addBtn); equalBtn = (Button)findViewById(R.id.equalBtn); clearBtn = (Button)findViewById(R.id.clearBtn); tv = (TextView)findViewById(R.id.tv); //配列に格納 btnTable[0] = btn0; btnTable[1] = btn1; btnTable[2] = btn2; btnTable[3] = btn3; btnTable[4] = btn4; btnTable[5] = btn5; btnTable[6] = btn6; btnTable[7] = btn7; btnTable[8] = btn8; btnTable[9] = btn9; btnTable[10] = divBtn; btnTable[11] = mulBtn; btnTable[12] = minBtn; btnTable[13] = addBtn; btnTable[14] = equalBtn; //各ボタンにリスナーをつける for(int i = 0; i < btnTable.length; i++) { btnTable[i].setOnClickListener(this); }; //clearボタンにリスナ0をつける clearBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { left = ""; right = ""; op = ""; opIsClicked = false; tv.setText(null); } }); } @Override public void onClick(View v) { Button b = (Button) v; //ボタンの文字列を取得 String str = b.getText().toString(); //ボタンの文字列を表示 tv.append(" "+str); switch(v.getId()){ case R.id.btn0: case R.id.btn8: case R.id.btn1: case R.id.btn2: case R.id.btn3: case R.id.btn4: case R.id.btn5: case R.id.btn6: case R.id.btn7: case R.id.btn9: if(opIsClicked == false){ left += str; } else{ right += str; } break; case R.id.divBtn: op = "div"; opIsClicked = true; break; case R.id.mulBtn: op = "mul"; opIsClicked = true; break; case R.id.minBtn: op = "min"; opIsClicked = true; break; case R.id.addBtn: op = "add"; opIsClicked = true; break; case R.id. equalBtn: int leftNum = Integer.parseInt(left); int rightNum = Integer.parseInt(right); if(op == "div"){ tv.append(String.valueOf((double)leftNum/rightNum)); }else if(op == "mul"){ tv.append(String.valueOf((double)leftNum * rightNum)); }else if(op == "min"){ tv.append(String.valueOf((double)leftNum - rightNum)); } else if(op == "add"){ tv.append(String.valueOf((double)leftNum + rightNum)); } } } }
参考サイト
qiita.com
SQLiteのデータの追加・表示・検索
機能
・データの追加
・データベースの表示
・データの検索
activity.xml
MainActivity.java
package com.example.orisa.mydb6; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity { //部品の変数 EditText addText; Button addBtn; Button showBtn; EditText searchText; Button searchBtn; TextView disp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 addText = (EditText)findViewById(R.id.addText); addBtn = (Button)findViewById(R.id.addBtn); showBtn = (Button)findViewById(R.id.showBtn); searchText = (EditText)findViewById(R.id.searchText); searchBtn = (Button)findViewById(R.id.searchBtn); disp = (TextView) findViewById(R.id.disp); //データベースの生成 MyDbHelper hlp = new MyDbHelper(this); final SQLiteDatabase db = hlp.getWritableDatabase(); //データの追加 addBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ContentValues val = new ContentValues(); val.put("task", addText.getText().toString()); db.insert("tasktb", null, val); } }); //データの検索 searchBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TextViewのクリア disp.setText("SEARCH RESULTS:\n"); //検索文字列の取得 String str = searchText.getText().toString(); //検索 Cursor c = db.query("tasktb", new String[]{"id", "task"}, "task=?", new String[]{str}, null, null, null); boolean mov = c.moveToFirst(); while(mov){ disp.append(c.getInt(0)+": "+c.getString(1)+"\n"); mov = c.moveToNext(); } c.close(); } }); //データの表示 showBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TextViewのリセット disp.setText(null); Cursor c = db.query("tasktb", new String[]{"id", "task"}, null, null, null, null, null); boolean mov = c.moveToFirst(); while(mov){ disp.append(c.getInt(0)+": "+c.getString(1)+"\n"); mov = c.moveToNext(); } c.close(); } }); } }
MyDbHelper.java
package com.example.orisa.mydb6; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by orisa on 2017/05/31. */ public class MyDbHelper extends SQLiteOpenHelper { public MyDbHelper(Context context){ super(context, null, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE tasktb(id INTEGER PRIMARY KEY, task TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
SQLiteのデータの追加・更新・削除・全削除・表示
機能
・レコードの追加
・レコードの更新
・レコードの削除
・レコードの全削除
・レコードの表示
activity_main.xml
MainActivity.java
package com.example.orisa.mydb5; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { EditText addName; EditText addAge; Button addBtn; Button updateBtn; Button deleteBtn; Button deleteAllBtn; Button showBtn; TextView disp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 addName = (EditText)findViewById(R.id.addName); addAge = (EditText)findViewById(R.id.addAge); addBtn = (Button)findViewById(R.id.addBtn); updateBtn = (Button)findViewById(R.id.updateBtn); deleteBtn = (Button)findViewById(R.id.deleteBtn); deleteAllBtn = (Button)findViewById(R.id.deleteAllBtn); showBtn = (Button)findViewById(R.id.showBtn); disp = (TextView)findViewById(R.id.disp); //データベースの生成 MyDbHelper hlp = new MyDbHelper(this); final SQLiteDatabase db = hlp.getReadableDatabase(); //finalをつけるのに注意 //データを追加 addBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ContentValues val = new ContentValues(); val.put("name", addName.getText().toString()); val.put("age", addAge.getText().toString()); db.insert("person", null, val); } }); //データの更新 updateBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //nameとageを取得 String name = addName.getText().toString(); String age = addAge.getText().toString(); //ContentValuesに値を入れる ContentValues val = new ContentValues(); val.put("age", age); //データベースを更新 db.update("person", val, "name=?", new String[]{name}); } }); //データの削除 deleteBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //名前を取得 String name = addName.getText().toString(); //ContentValuesに値を入れる ContentValues val = new ContentValues(); val.put("name", name); //データベースを更新 db.delete("person", "name=?", new String[]{name}); } }); //データの全削除 deleteAllBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { db.delete("person", null, null); } }); //データを表示 showBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //TextViewをリセットする disp.setText(null); Cursor c = db.query("person", new String[]{"name", "age"}, null, null, null, null, null); boolean mov = c.moveToFirst(); while(mov){ disp.append(c.getString(0) + ": " + c.getInt(1) + "\n"); mov = c.moveToNext(); } c.close(); } }); } }
MyDbHelper.java
package com.example.orisa.mydb5; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by orisa on 2017/05/31. */ public class MyDbHelper extends SQLiteOpenHelper { public MyDbHelper(Context context){ super(context, null, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE person(name TEXT NOT NULL, age TEXT);"); //insert data db.execSQL("INSERT INTO person(name, age) values('john', 18);"); db.execSQL("INSERT INTO person(name, age) values('eric', 20);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
SQLiteのデータの追加・表示
機能:
・レコードの追加
・全レコードの表示
必要なクラス
・MainActivity.java
・MyDbHelper.java (SQLLiteOpenHelperを実装)
MainActivity.java
package com.example.orisa.mydb3; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RelativeLayout; import android.widget.TextView; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity { //部品の変数 RelativeLayout layout; TextView tv;//データベースを表示するテキストビュー EditText addName;//名前の入力 EditText addAge;//年齢の入力 Button addBtn;//データの追加 Button showBtn;//データベースの表示 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //部品の取得 layout = (RelativeLayout) findViewById(R.id.layout); tv = (TextView)findViewById(R.id.tv) ; addName = (EditText)findViewById(R.id.addName); addAge = (EditText)findViewById(R.id.addAge); addBtn = (Button)findViewById(R.id.addBtn); showBtn = (Button)findViewById(R.id.showBtn); //データベースの生成 MyDbHelper hlp = new MyDbHelper(this); final SQLiteDatabase db = hlp.getReadableDatabase(); //データの取得と追加 addBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //ContentValuesにデータを入れる ContentValues val = new ContentValues(); val.put("name", addName.getText().toString()); val.put("age", addAge.getText().toString()); //データベースにレコードを挿入 db.insert("person_table", null, val); } }); //データの読み出し showBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //テキストビューをリセットする tv.setText(null); //全レコードを表示 Cursor c = db.query("person_table", new String[]{"name, age"}, null, null, null, null, null); boolean mov = c.moveToFirst(); while (mov){ //一つのレコードを追加 tv.append(String.format("%s: %d才", c.getString(0), c.getInt(1))); //改行 tv.append("\n"); mov = c.moveToNext(); } c.close(); } }); } }
MyDbHelper.java
package com.example.orisa.mydb3; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * Created by orisa on 2017/05/30. */ public class MyDbHelper extends SQLiteOpenHelper { public MyDbHelper(Context context){ super(context, null, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE person_table(name TEXT NOT NULL, age TEXT);"); //データを挿入する db.execSQL("INSERT INTO person_table(name, age) values(?,?);", new Object[]{"Adam Smith", 30}); db.execSQL("INSERT INTO person_table(name, age) values(?,?);", new Object[]{"John Lennon", 40}); db.execSQL("INSERT INTO person_table(name, age) values(?, ?);", new Object[]{"Paul McCartney", 50}); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
activity_main.xml
参考サイト
SQLiteでデータベース - 愚鈍人
EditTextからStringを取得する
EditTextからStringを取得するときのコードは
editText.getText().toString;
メソッドについて、
メソッド | 戻り値 |
---|---|
getText() | Editable |
だが、EditableクラスにtoStringはない
https://developer.android.com/reference/android/text/Editable.html
が、Editableクラスを実装したSpannableStringBuilderクラスには
メソッド | 戻り値 |
---|---|
toString() | String |
があるので、これを使って文字列を取得する
参考サイト
www.javadrive.jp