2012年9月28日金曜日
lesson09
******************** MainActivity.java ********************
package jp.lesson.study10;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
******************** activity_main.xml ********************
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<EditText
android:id="@+id/editText1"
android:gravity="top"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">Study10</string>
<string name="hello_world">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
2012年9月26日水曜日
動的にレイアウト 2
動的に配置する。
ボタンをクリックすると、エディットテキストを追加配置する。
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
private Activity me;
private int i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
me = this;
final LinearLayout llayout = new LinearLayout(me);
llayout.setOrientation(LinearLayout.VERTICAL);
setContentView(llayout);
Button btn = new Button(me);
btn.setText("button");
llayout.addView(btn);
final int max=5;
final EditText etxt[] = new EditText[max];
public void onClick(View v) {
if(i < max)
{
etxt[i] = new EditText(me);
etxt[i].setText("editText_"+i);
llayout.addView(etxt[i]);
i++;
}
ボタンをクリックすると、エディットテキストを追加配置する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private Activity me;
private int i;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
me = this;
final LinearLayout llayout = new LinearLayout(me);
llayout.setOrientation(LinearLayout.VERTICAL);
setContentView(llayout);
Button btn = new Button(me);
btn.setText("button");
llayout.addView(btn);
final int max=5;
final EditText etxt[] = new EditText[max];
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(i < max)
{
etxt[i] = new EditText(me);
etxt[i].setText("editText_"+i);
llayout.addView(etxt[i]);
i++;
}
}
});
}
}
2012年9月25日火曜日
動的にレイアウト
動的に配置する。
ボタンをクリックすると、エディットテキストを追加配置する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private Activity me;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
me = this;
final LinearLayout llayout = new LinearLayout(me);
llayout.setOrientation(LinearLayout.VERTICAL);
setContentView(llayout);
Button btn = new Button(me);
btn.setText("button");
llayout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText etxt = new EditText(me);
etxt.setText("text_1");
llayout.addView(etxt);
}
});
}
}
ボタンをクリックすると、エディットテキストを追加配置する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
private Activity me;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
me = this;
final LinearLayout llayout = new LinearLayout(me);
llayout.setOrientation(LinearLayout.VERTICAL);
setContentView(llayout);
Button btn = new Button(me);
btn.setText("button");
llayout.addView(btn);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText etxt = new EditText(me);
etxt.setText("text_1");
llayout.addView(etxt);
}
});
}
}
2012年9月19日水曜日
ListView、アイテムクリック時
文字列のアイテムを表示する。
アイテムをクリックするとトースト表示する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.listView1);
String[] items = {"クッキー","ケーキ","チョコレート"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, items);
list.setAdapter(adapter);
//リスト項目がクリックされた時の処理
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ListView listv = (ListView) parent;
// クリックされたアイテム取得
String str = (String) listv.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
******************** list.xml ********************
<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
アイテムをクリックするとトースト表示する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.listView1);
String[] items = {"クッキー","ケーキ","チョコレート"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, items);
list.setAdapter(adapter);
//リスト項目がクリックされた時の処理
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ListView listv = (ListView) parent;
// クリックされたアイテム取得
String str = (String) listv.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
******************** list.xml ********************
<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
ListView
リストビュー
文字列のアイテムを表示するのみ。
res/layoutの下にlist.xmlというファイルを作成する。
res/layout/list.xml
文字列を表示するので、TextViewを配置する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.listView1);
String[] items = {"クッキー","ケーキ","チョコレート"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, items);
list.setAdapter(adapter); // アダプターを設定
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
******************** list.xml ********************
<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
文字列のアイテムを表示するのみ。
res/layoutの下にlist.xmlというファイルを作成する。
res/layout/list.xml
文字列を表示するので、TextViewを配置する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView list = (ListView)findViewById(R.id.listView1);
String[] items = {"クッキー","ケーキ","チョコレート"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list, items);
list.setAdapter(adapter); // アダプターを設定
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
******************** list.xml ********************
<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
/>
2012年9月17日月曜日
SQLite
データベースの勉強
テーブル名productsで、名前と値段だけです。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// データベース接続
MyDBHelper helper = new MyDBHelper(this);
SQLiteDatabase db = helper.getReadableDatabase();
Cursor c = db.query("products",
new String[] { "name", "price" },
null, null, null, null, null);
/* query()
table:テーブル名
columns:取得する列名(カラム名、フィールド名)の配列
selection:取得するレコードの条件を指定
group:
having:
order:
limit:取得するレコードの上限数を指定。使わない場合は、null。
*/
boolean isEof = c.moveToFirst();
TextView textView1 = (TextView) findViewById(R.id.textView1);
String text="";
while (isEof) {
text += String.format("%s : %d円\r\n", c.getString(0), c.getInt(1));
isEof = c.moveToNext();
}
textView1.setText(text);
c.close();
db.close();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(Context context) {
super(context, null, null, 1);
/* コンテキストオブジェクト
fileName・・・データベース名
factory・・・通常nullを指定
version・・・データベースのバージョン
*/ }
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(
"create table products("+
" name text not null,"+
" price text"+
");"
);
// table row insert
db.execSQL("insert into products(name,price) values ('クッキー', 120);");
db.execSQL("insert into products(name,price) values ('ビスケット', 85);");
db.execSQL("insert into products(name,price) values ('ケーキ', 285);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO 自動生成されたメソッド・スタブ
}
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="hello">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
テーブル名productsで、名前と値段だけです。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.Context;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// データベース接続
MyDBHelper helper = new MyDBHelper(this);
SQLiteDatabase db = helper.getReadableDatabase();
Cursor c = db.query("products",
new String[] { "name", "price" },
null, null, null, null, null);
/* query()
table:テーブル名
columns:取得する列名(カラム名、フィールド名)の配列
selection:取得するレコードの条件を指定
group:
having:
order:
limit:取得するレコードの上限数を指定。使わない場合は、null。
*/
boolean isEof = c.moveToFirst();
TextView textView1 = (TextView) findViewById(R.id.textView1);
String text="";
while (isEof) {
text += String.format("%s : %d円\r\n", c.getString(0), c.getInt(1));
isEof = c.moveToNext();
}
textView1.setText(text);
c.close();
db.close();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
public class MyDBHelper extends SQLiteOpenHelper {
public MyDBHelper(Context context) {
super(context, null, null, 1);
/* コンテキストオブジェクト
fileName・・・データベース名
factory・・・通常nullを指定
version・・・データベースのバージョン
*/ }
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(
"create table products("+
" name text not null,"+
" price text"+
");"
);
// table row insert
db.execSQL("insert into products(name,price) values ('クッキー', 120);");
db.execSQL("insert into products(name,price) values ('ビスケット', 85);");
db.execSQL("insert into products(name,price) values ('ケーキ', 285);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO 自動生成されたメソッド・スタブ
}
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="hello">Hello world!</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
</resources>
2012年9月14日金曜日
画面遷移 データの受け渡し
ボタンをクリックをしたとき、サブの画面に遷移する。
そのときEditTextに入力されたデータも受け渡す。
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.widget.EditText;
private Button btn1;
private EditText edit1;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String strdata = edit1.getText().toString();
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("data", strdata); // インテントに値をセット
startActivity(intent);
}
});
}
}
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/maintv" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
private Button subbtn;
setContentView(R.layout.activity_sub);
EditText edtxt = (EditText) findViewById(R.id.editText2);
Intent intent = getIntent();
String sdata = intent.getStringExtra("data");
edtxt.setText(sdata);
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
finish(); // 次画面のアクティビティ終了
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subtv" />
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn2" />
package="jp.lesson.studyandroid"
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="15" />
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</activity>
<activity android:name=".SubActivity"
android:label="@string/title_activity_sub" >
</activity>
</application>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="maintv">main画面</string>
<string name="subtv">sub画面</string>
<string name="title_activity_main">MainActivity</string>
<string name="title_activity_sub">SubActivity</string>
<string name="btn">サブ画面へ</string>
<string name="btn2">元に戻る</string>
そのときEditTextに入力されたデータも受け渡す。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.widget.EditText;
public class MainActivity extends Activity {
private Button btn1;
private EditText edit1;
@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
btn1 = (Button) findViewById(R.id.button1);btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String strdata = edit1.getText().toString();
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("data", strdata); // インテントに値をセット
startActivity(intent);
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/maintv" />
<EditText
android:id="@+id/editText1"android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** SubActivity.java ********************
package jp.lesson.studyandroid;
import android.app.Activity;
import android.content.Intent;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class SubActivity extends Activity {
private Button subbtn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_sub);
EditText edtxt = (EditText) findViewById(R.id.editText2);
Intent intent = getIntent();
String sdata = intent.getStringExtra("data");
edtxt.setText(sdata);
subbtn = (Button) findViewById(R.id.button2);
subbtn.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
finish(); // 次画面のアクティビティ終了
}
});}
}
******************** activity_sub.xml ********************
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subtv" />
<EditText
android:id="@+id/editText2"android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/button2"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn2" />
</LinearLayout>
******************** AndroidManifest.xml ********************
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="jp.lesson.studyandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter></activity>
<activity android:name=".SubActivity"
android:label="@string/title_activity_sub" >
</activity>
</application>
</manifest>
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="maintv">main画面</string>
<string name="subtv">sub画面</string>
<string name="title_activity_main">MainActivity</string>
<string name="title_activity_sub">SubActivity</string>
<string name="btn">サブ画面へ</string>
<string name="btn2">元に戻る</string>
</resources>
2012年9月12日水曜日
画面遷移
ボタンをクリックをしたとき、サブの画面に遷移する。
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
private Button btn1;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);
}
});
}
}
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/maintv" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
import android.view.View;
import android.widget.Button;
private Button subbtn;
setContentView(R.layout.activity_sub);
subbtn = (Button) findViewById(R.id.button2);
subbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
finish(); // 次画面のアクティビティ終了
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subtv" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn2" />
package="jp.lesson.studyandroid"
android:versionCode="1"
android:versionName="1.0" >
android:targetSdkVersion="15" />
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</activity>
<activity android:name=".SubActivity"
android:label="@string/title_activity_sub" >
</activity>
</application>
<string name="maintv">main画面</string>
<string name="subtv">sub画面</string>
<string name="title_activity_main">MainActivity</string>
<string name="title_activity_sub">SubActivity</string>
<string name="btn">サブ画面へ</string>
<string name="btn2">元に戻る</string>
遷移先のアクティビティを「AndroidManifest.xml」に登録する必要がある。
AndroidManifest.xml は res の下にある。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
public class MainActivity extends Activity {
private Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
startActivity(intent);
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/maintv" />
<Button
android:id="@+id/button1"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** SubActivity.java ********************
package jp.lesson.studyandroid;
import android.app.Activity;
import android.os.Bundle;import android.view.View;
import android.widget.Button;
public class SubActivity extends Activity {
private Button subbtn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_sub);
subbtn = (Button) findViewById(R.id.button2);
subbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO 自動生成されたメソッド・スタブ
finish(); // 次画面のアクティビティ終了
}
});}
}
******************** activity_sub.xml ********************
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subtv" />
<Button
android:id="@+id/button2"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn2" />
</LinearLayout>
******************** AndroidManifest.xml ********************
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="jp.lesson.studyandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter></activity>
<activity android:name=".SubActivity"
android:label="@string/title_activity_sub" >
</activity>
</application>
</manifest>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string><string name="maintv">main画面</string>
<string name="subtv">sub画面</string>
<string name="title_activity_main">MainActivity</string>
<string name="title_activity_sub">SubActivity</string>
<string name="btn">サブ画面へ</string>
<string name="btn2">元に戻る</string>
</resources>
2012年9月4日火曜日
プログレスバー
ボタンをクリックをしたとき、エディットテキストに入力した値をプログレスバーで表示する。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private EditText edit1;
private Button btn1;
private ProgressBar pb1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
btn1 = (Button) findViewById(R.id.button1);
pb1 = (ProgressBar) findViewById(R.id.progressBar1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String s1 = edit1.getText().toString();
float f1 = Float.valueOf(s1);
int i1 = (int)f1; /* float型からint型に変換 */
pb1.setProgress(i1); /* 値(int型)を設定 */
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="btn">ボタン</string>
</resources>
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
private EditText edit1;
private Button btn1;
private ProgressBar pb1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
btn1 = (Button) findViewById(R.id.button1);
pb1 = (ProgressBar) findViewById(R.id.progressBar1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String s1 = edit1.getText().toString();
float f1 = Float.valueOf(s1);
int i1 = (int)f1; /* float型からint型に変換 */
pb1.setProgress(i1); /* 値(int型)を設定 */
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="btn">ボタン</string>
</resources>
キーボードを非表示にする
ボタンをクリックをしたとき、キーボードを非表示にする。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.Toast;
import android.view.inputmethod.InputMethodManager;
public class MainActivity extends Activity {
private EditText edit1, edit2;
private Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
String s1 = edit1.getText().toString();
String s2 = edit2.getText().toString();
float f1 = Float.valueOf(s1);
float f2 = Float.valueOf(s2);
float f3;
f3 = f1 + f2;
/* トースト */
Toast.makeText(getApplicationContext(), Float.toString(f3), Toast.LENGTH_LONG).show();
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="btn">ボタン</string>
</resources>
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.Toast;
import android.view.inputmethod.InputMethodManager;
public class MainActivity extends Activity {
private EditText edit1, edit2;
private Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
String s1 = edit1.getText().toString();
String s2 = edit2.getText().toString();
float f1 = Float.valueOf(s1);
float f2 = Float.valueOf(s2);
float f3;
f3 = f1 + f2;
/* トースト */
Toast.makeText(getApplicationContext(), Float.toString(f3), Toast.LENGTH_LONG).show();
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_main">MainActivity</string>
<string name="btn">ボタン</string>
</resources>
2012年9月3日月曜日
トースト
ボタンをクリックすると、エディットテキスト1とエディットテキスト2をデータ(float型)をとりだす。足し算をして、その結果をトーストで表示する。
むっ!
表示できたが、キーボードが邪魔。
******************** MainActivity.java ********************
package jp.lesson.studyandroid;
import android.os.Bundle;
import android.app.Activity;import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText edit1, edit2;
private Button btn1;
@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = (EditText) findViewById(R.id.editText1);
edit2 = (EditText) findViewById(R.id.editText2);btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String s1 = edit1.getText().toString();
String s2 = edit2.getText().toString();
float f1 = Float.valueOf(s1);
float f2 = Float.valueOf(s2);
float f3;
f3 = f1 + f2;
/* トースト */
Toast.makeText(getApplicationContext(), Float.toString(f3), Toast.LENGTH_LONG).show();
}
});
}
}
******************** activity_main.xml ********************
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editText2"android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<Button
android:id="@+id/button1"android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btn" />
</LinearLayout>
******************** strings.xml ********************
<resources>
<string name="app_name">StudyAndroid</string>
<string name="menu_settings">Settings</string><string name="title_activity_main">MainActivity</string>
<string name="btn">ボタン</string>
</resources>
登録:
投稿 (Atom)