님처럼 여러개의 값은 다음 화면으로 넘길 때 일일이 다 넘기는 보다는 class로 감싸서 넘기면 훨씬 보기가 편해집니다. 그런데 안드로이드에서는 오브젝트는 시스템 특성 상 Serializable이나 Parcelable을 구현해 주어야 합니다. 두개의 차이는 답이 길어지므로, 구글링을 해보시기 바랍니다.
우선, 다음 화면에 넘길 클래스를 하나 만듭니다.
// 정확하게 뭐를 하는 화면인지 몰라서 임의의 이름을 사용.
public class DeliveryExtra implment Serialzable {
private final String delName;
private final String delAdd;
private final String delPrice;
private final String delDdate1;
private final String delDate2;
private final String delrFirst;
private final String delCause;
//생성자, getter는 생략.
}
다음 액티비티의 인텐트를 생성할 때 데이터를 넘깁니다.
rok.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String Rname = rname.getText().toString();
String Radd = raddress.getText().toString();
String Rprice = rprice.getText().toString();
String Rdate1 = rdate1.getText().toString();
String Rdate2 = rdate2.getText().toString();
String Rfirst = rfirst.getText().toString();
String Rcause = rcause.getText().toString();
DeliverExtra deliveryExtra = new DeliveryExtra(
Rname,
Radd,
Rprice,
Rdate1,
Rdate2,
Rfirst,
Rcause
);
Intent intent=new Intent(getApplicationContext(), room_view_main.class);
intent.putExtra(Activity2.EXTRA_DELVERY, deliveryExtra);
startActivity(intent);
}
});
// 편의상 다음 액티비티를 Activity2로 함.
public Activity2 ... {
public static final String EXTRA_DELVERY = "delivery";
}
Activity2에서 전달받은 데이터를 가져옴
public class Activity2 .... {
public static final String EXTRA_DELVERY = "delivery";
@Override
protected void onCreate(Bundle savedInstance) {
super.onCreate(...);
setContentView(...);
readDataFromIntent();
}
private void readDataFromIntent() {
DeliveryExtra deliveryExtra = (DeliveryExtra) getIntent().getSerializableExtra(EXTRA_DELVERY);
// 여기에서 deliveryExtra를 adapter에서 사용할 수 있는 데이터 타입으로 가공.
vlist = findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1 ,mid);
vlist.setAdapter(adapter);//리스트 형태지점
}
...
}
deliveryExtra를 adapter에서 사용할 수 있는 데이터 타입으로 가공하셔야 하는데, 제한적인 정보로는 님이 뭐를 하시는지 알 수가 없어서, 이 부분은 패스하겠습니다. 님이 필요한 형태대로 데이터를 가공해서 adapter에 전달해서 사용하세요.
참고로 요즘은 리스트뷰를 사용하지 않습니다. RecyclerView를 사용합니다.