package com.example.multipage;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseBooleanArray;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class Sellsee extends Activity {
// 상품 정보 리스트 뷰
private ListView mProductInfoListView;
// 상품 정보 리스트 어댑터
private ArrayAdapter<String> mProductInfoListAdapter;
// /상품 정보 아이템 리스트
private ArrayList<String> mProductInfoItems;
// 상품 정리 버튼
private Button mbtnfree;
// SharedPreferences 이름
public static final String PRODUCT_INFO_SHARED_PREFERENCES_NAME = "productInfoPrefs";
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sellsee);
// TODO Auto-generated method stub
mProductInfoListView = (ListView) findViewById(R.id.slist);
mProductInfoListAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_multiple_choice,
mProductInfoItems = new ArrayList<String>());
mProductInfoListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mProductInfoListView.setAdapter(mProductInfoListAdapter);
mbtnfree = (Button) findViewById(R.id.btnfree);
mbtnfree.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SparseBooleanArray check = mProductInfoListView
.getCheckedItemPositions();
Log.e("Mytag",""+check.size());
if(check.size()!=0){
for(int i=mProductInfoListView.getCount()-1; i>=0; i--){
if(check.get(i)){
//mProductInfoItems.remove(i);
mProductInfoItems.remove(check.keyAt(i));
check = mProductInfoListView.getCheckedItemPositions();
}
}
mProductInfoListView.clearChoices();
mProductInfoListAdapter.notifyDataSetChanged();
}
}
});
}
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// 상품 정보 리스트 강제 업데이트
// (TODO: SharedPreferences의 변경 여부 리스너를 구현하여 불필요한 강제 업데이트 제한 )
getProductInfoItemsFromSharedPreferences();
mProductInfoListAdapter.notifyDataSetInvalidated();
}
private void getProductInfoItemsFromSharedPreferences() {
mProductInfoItems.clear();
// 상품 정보를 위한 SharedPreferences 파일을 가져온다(파일이 없는 경우 자동 생성)
SharedPreferences prefs = this.getSharedPreferences(
PRODUCT_INFO_SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE);
// SharedPreferences에 저장된 모든 데이터 추출
Map<String, ?> values = prefs.getAll();
Iterator<String> iterator = values.keySet().iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
// 상품 정보 KEY인지 판별
if (key != null && key.startsWith("PK_"))
;
{
try {
// ->TODO: 편집, 정렬 등에 이용
// String productId = key.substring("PK_".length(),
// key.length());
// 상품 정보 데이터 추출
String productInfoData = (String) values.get(key);
String[] productInfos = productInfoData
.split("_@#@_" /* 구분자 */);
String productName = productInfos[0];
String productPrice = productInfos[1];
// 리스트 아이템 정보 출력으로 변환 저장
mProductInfoItems.add("상품:" + productName + " / " + "가격:"
+ productPrice);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
굵은부분이 삭제부분인데, 기능은 되는데, 이 액티비티를 다시 띄엇을때는 지운것도 그대로 다시 생겨버립니다. 아마 Sharepreference의 키값과 밸류값 두개를 다 지우든가 하나를 지우든가 해야되는거같은데...
어디부분을 어떻게 만져야할지 좀 도와주세요...이래저래 생각은 해보고잇는데 만지질못하겟네유 ㅠㅠ
아 그리고..위에 삭제가 된다고는 햇는데 해당된게 삭제 되는게 아니라 다른값을 지워버립니다...어떻게 고쳐야되죠? ㅠ