#画面遷移備忘録
・listviewをタップして画面遷移
・listviewの情報を移動させる
##MainActivity
QuantityInfo info =list.get(position);
リストのpositionを取得
intent.putExtra("QuantityInfo", info);
※QuantityInfoの中にはcomment,quanntity,timeの3つの情報が格納
QuantityInfoをそのまま指定しては中のメソッドの場所が分からないのでシリアライズする
QuantityInfoはクラスをintent.putExtraするために、QuantityInfoクラスをimplements Serializable
→シリアライズする事によりintentの中に格納出来る
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 画面遷移
Intent intent = new Intent(getApplication(), DetailActivity.class);
QuantityInfo info =list.get(position);
intent.putExtra("QuantityInfo", info);
startActivity(intent);
}
}
###SubActivity
QuantityInfo info = (QuantityInfo)getIntent().getSerializableExtra("QuantityInfo" );
intentする際QuantityInfo、QuantityInfoのシリアライズされた位置をinfoの中に取りだす
time.setText(info.getTime());
comment.setText(info.getComment());
quantity.setText("" + info.getQuantity());
infoの中の情報をsetTextする
public class DetailActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
setTitle("");
Intent intent = getIntent();
//MainActivityから値を受け取る
QuantityInfo info = (QuantityInfo)getIntent().getSerializableExtra("QuantityInfo" );
//id textView1をt1に当てはめている
TextView time = (TextView)findViewById(R.id.textView1);
//id textView1をt2に当てはめている
TextView comment = (TextView)findViewById(R.id.textView2);
//id textView1をt3に当てはめている
TextView quantity = (TextView)findViewById(R.id.textView3);
//受け取った値を表示
time.setText(info.getTime());
comment.setText(info.getComment());
quantity.setText("" + info.getQuantity());
}
}
listを選択から画面遷移をさせる事には成功
残りの項目:レイアウトを整える、画像を選択させる、リストに格納再表示。