概要
状態:終了
閲覧数:1,201
投稿日:2013-07-31
更新日:2013-08-02
・2日目、7時間かけるも、動作させることが出来ず、結局諦める
・インテント … 項目画面からのデータをメイン画面に反映(DB未利用)
・悔しいので再度挑戦したら、ようやく出来た。3日かかったけど…
・実際のデータ保存はデータベースで行う
・このエントリーで記載している内容は、実装確認できた段階でコメントアウト
・あくまでも動作理解が目的
・インテント … 項目画面からのデータをメイン画面に反映(DB未利用)
・悔しいので再度挑戦したら、ようやく出来た。3日かかったけど…
動作理解が目的
・実際のデータ保存はデータベースで行う
・このエントリーで記載している内容は、実装確認できた段階でコメントアウト
・あくまでも動作理解が目的
手順 … 「項目入力画面」 … クリックリスナー
大前提
・「項目入力画面」では、4つあるクリックリスナー実装方式の内、「2.既存のクラスにインターフェイスを実装」を採用している
1.インターフェイス実装
▼/src/android/style/householdaccount/Item.java
・既存クラスにインターフェイスを実装
public class Item extends Activity implements OnClickListener{
//public class Item extends Activity{
2.クリックリスナー登録
onCreateメソッド内にて、クリックリスナー登録
・setOnClickListener引数に this を指定
button4.setOnClickListener(this);//記入ボタン
3.onClickメソッドをオーバーライド
onClickメソッド(ボタンクリック時に呼ばれるメソッド)をオーバーライド
3-1.edit1~3に入力したデータをgetText()メソッドで取得
3-2.toString()メソッドで文字列に変換
3-3.putExtraメソッドでintent1のdata1~3へ格納
public void onClick(View v) {
if (v==button4){//記入ボタンクリックされたら
Intent intent2=new Intent(Item.this,MainActivity.class);
// edit1~3に入力したデータをgetText()メソッドで取得
// toString()メソッドで文字列に変換
// putExtraメソッドでintent1のdata1~3へ格納
intent2.putExtra("data1", edit1.getText().toString());
intent2.putExtra("data2", edit2.getText().toString());
intent2.putExtra("data3", edit3.getText().toString());
intent2.putExtra("year", year);
intent2.putExtra("month", month);
intent2.putExtra("day", day);
startActivity(intent2);
}
}
※「intent1」はカレンダー画面経由インテントで利用しているため、被らないよう「intent2」を指定
手順 … 「メイン画面」 … インテントデータ受取&表示
1.変数定義
▼/src/android/style/householdaccount/MainActivity.java
public class MainActivity extends Activity{
/* 変数の定義 */
private TextView text1;
2.ボタンオブジェクト取得
・onCreateメソッド内にて、ボタンオブジェクト取得
/* コンポーネントの設定 */
text1=(TextView)this.findViewById(R.id.text1);
3.レイアウト設定
▼/res/layout/activity_main.xml
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10.0px"
/>
4.データ受取&表示
▼/src/android/style/householdaccount/MainActivity.java
・onCreateメソッド内
4-1.getIntent()メソッドでItem.javaの intentを取得
4-2.getStringExtraで、intent2のdata1~3のデータを取得
4-3.取得内容を、text1にsetTextメソッドで格納
Intent intent2 = getIntent();//getIntent()メソッドでItem.javaの intentを取得
// getStringExtraで、intent2のdata1~3のデータを取得
String d1 = intent2.getStringExtra("data1");
String d2 = intent2.getStringExtra("data2");
String d3 = intent2.getStringExtra("data3");
text1.setText(d1+d2+d3);//取得内容を、text1にsetTextメソッドで格納
}