현재 어플구조를 이런식으로 짜고있습니다. A액티비티에 리스트뷰 아이템을 터치시 B로 인텐트를 보내고
B액티비티에서 즐겨찾기 추가버튼을 누르면 그냥 리스트뷰에 아이템이 추가되는 방식을 사용할려고합니다.
정렬이나 이런거 하나도 안쓰고 그냥 정말 추가만 되게 하려고하는데요.
인텐트는 제대로 넘어가는데 계속 아이템이 추가가 되지않고 계속 교체만 됩니다.
예를 들면 A액티비티에서 0번아이템을 터치하면 0번관련 아이템 데이터가 B액티비티로 넘어가고
B액티비티에서 즐겨찾기 버튼을 누르면 인텐트를 A액티비티로 돌려주고 즐겨찾기 리스트뷰에 아이템이 추가됩니다.
그리고 A액티비티에서 1번 아이템을 터치하고 B액티비티에서 즐겨찾기 추가를 하면 0번아이템의 즐겨찾기아이템이 즐겨찾기 리스트뷰에서 사라지고 1번의 관련데이터가 들어갑니다.
아래는 A액티비티에서 B로 인텐트를 넘기는 부분과 인텐트를 받아왔을때 처리하는 메소드 부분입니다.
//리스트 아이템 클릭시
fruitList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, exampleActivity.class);
intent.putExtra("icon",((fruits)adapter.getItem(position)).getIcon());
intent.putExtra("name",((fruits)adapter.getItem(position)).getName());
intent.putExtra("example",((fruits)adapter.getItem(position)).getExample());
intent.putExtra("nutrit",((fruits)adapter.getItem(position)).getNutrit());
intent.putExtra("sickness",((fruits)adapter.getItem(position)).getSickness());
intent.putExtra("star",((fruits)adapter.getItem(position)).getStar());
startActivityForResult(intent,1);
}
});
//즐겨찾기에 추가하는 메소드
void addStarListItem() {
starListAdapter staradapter = new starListAdapter();
StarList.setAdapter(staradapter);
staradapter.addfruits(starAddIcon, starAddtitle, staraddExample, starAddNutrit, staraddsicknees,true);
Toast.makeText(getApplicationContext(), "즐겨찾기에 추가되었습니다", Toast.LENGTH_SHORT).show();
}
//설명 액비티티에서 버튼을 눌렀을시
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//만약 설명액티비티에서 넘어온 데이터가 없으면 그냥 아무짓도 하지 않는다
if(data == null)
{
return ;
}
starAddIcon = data.getIntExtra("icon", 0);
starAddtitle = data.getStringExtra("title");
staraddExample = data.getStringExtra(("example"));
starAddNutrit = data.getStringExtra("nutrit");
staraddsicknees = data.getStringExtra("sickness");
addStarListItem();
}
이부분은 B액티비티 전문입니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
ImageView icon = (ImageView) findViewById(R.id.icon);
TextView title = (TextView) findViewById(R.id.title);
TextView example = (TextView) findViewById(R.id.exampleText);
TextView sickness = (TextView) findViewById(R.id.sicknessExample);
TextView nutrit = (TextView) findViewById(R.id.nutritExample);
TextView staraddBTN = (Button) findViewById(R.id.starAddBTN);
final Intent intent = getIntent();
icon.setImageResource(intent.getIntExtra("icon", -1));
title.setText(intent.getStringExtra("name"));
example.setText(intent.getStringExtra("example"));
sickness.setText(intent.getStringExtra("sickness"));
nutrit.setText(intent.getStringExtra("nutrit"));
staraddBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent stardata = new Intent();
stardata.putExtra("icon", intent.getIntExtra("icon", 0));
stardata.putExtra("title", intent.getStringExtra("name"));
stardata.putExtra("example", intent.getStringExtra("example"));
stardata.putExtra("nutrit", intent.getStringExtra("nutrit"));
stardata.putExtra("sickness", intent.getStringExtra("sickness"));
stardata.putExtra("star", true);
setResult(1, stardata);
finish();
}
});
}
어떻게해야 처음에 넣어둔 아이템이 사라지지않고 추가를 시킬수 있을까요?