2014-08-29 1 views
-1

이것은 위치를 가져와 arraylist에서 추가/제거하고 클릭 버튼에 목록을 저장하고 다른 저장 방법이 아닌 SharedPreferences를 사용해야하는 간단한 앱입니다. 어떤 이유로 든 아무 것도 저장하지 않습니다. 내가 관련이없는 것들의 일부를 제거 ..버튼의 클릭으로 ArrayList를 저장할 수 없습니다

package com.example.pearls1; 

import java.util.ArrayList; 

import android.app.ListActivity; 
import android.content.Context; 
import android.content.SharedPreferences; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.util.SparseBooleanArray; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 

    ArrayList<String> list = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 
    SharedPreferences sharedPreferences; 
    public int ItemCounter = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     LocationListener locListener = new MyLocationListener(); 
     locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
       locListener); 

     Button buttonAdd = (Button) findViewById(R.id.buttonAdd); 
     Button buttonDelete = (Button) findViewById(R.id.buttonDelete); 
     Button buttonSave = (Button) findViewById(R.id.buttonSave); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, list); 

     // Opening the sharedPreferences object 
     sharedPreferences = getSharedPreferences("SaveListItem", 0); 
     SharedPreferences mypreferences = getSharedPreferences(
       "myPrefs", Context.MODE_PRIVATE); 

     for (int Counter=0; Counter< sharedPreferences.getInt("Count", 0); Counter++) 
     { 
      list.add(sharedPreferences.getString("Item" + Integer.toString(Counter), "")); 
     } 

     OnClickListener listenerAdd = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       EditText edit = (EditText) findViewById(R.id.PearlNumber); 
       EditText edit1 = (EditText) findViewById(R.id.txtLatitude); 
       EditText edit2 = (EditText) findViewById(R.id.txtLongitude); 

       list.add("Pearl Number:" + edit.getText().toString() + " X:" 
         + edit1.getText().toString() + " Y:" 
         + edit2.getText().toString()); 
       // adapter.notifyDataSetChanged(); 
       SaveItem(edit.getText().toString(), edit1.getText().toString(), 
         edit2.getText().toString()); 
      }; 

     }; 

     OnClickListener listenerDel = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SparseBooleanArray checkedItemPositions = getListView() 
         .getCheckedItemPositions(); 
       int itemCount = getListView().getCount(); 

       for (int i = itemCount - 1; i >= 0; i--) { 
        if (checkedItemPositions.get(i)) { 
         adapter.remove(list.get(i)); 
        } 
       } 
       checkedItemPositions.clear(); 
       adapter.notifyDataSetChanged(); 

      } 
     }; 

     OnClickListener listenerSave = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       sharedPreferences = getSharedPreferences("SaveListItem", 0); 
       SharedPreferences mypreferences = getSharedPreferences(
         "myPrefs", Context.MODE_PRIVATE); 
       SharedPreferences.Editor editor = mypreferences.edit(); 
       editor.putInt("Count", list.size()); 
       for (int i = 0; i < ItemCounter; i++) { 
        editor.putString("Item" + Integer.toString(i), list.get(i)); 
       } 
       editor.commit(); 
      } 

     }; 

     buttonAdd.setOnClickListener(listenerAdd); 
     buttonDelete.setOnClickListener(listenerDel); 
     buttonSave.setOnClickListener(listenerSave); 
     setListAdapter(adapter); 

    } 

    private void SaveItem(String pearl, String Anumber, String Bnumber) { 
     sharedPreferences = getSharedPreferences("SaveListItem", 0); 

     ItemCounter++; 

     /** Opening the editor object to write data to sharedPreferences */ 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 

     editor.putString("pearl" + Integer.toString((ItemCounter - 1)), pearl); 
     editor.putString("Anumber" + Integer.toString((ItemCounter - 1)), 
       Anumber); 
     editor.putString("Bnumber" + Integer.toString((ItemCounter - 1)), 
       Bnumber); 

     // Storing the count of Item count 
     editor.putInt("ItemCounter", ItemCounter); 
     /** Saving the values stored in the shared preferences */ 
     editor.commit(); 

    } 
package com.example.pearls1; 

import java.util.ArrayList; 

import android.app.ListActivity; 
import android.content.Context; 
import android.content.SharedPreferences; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.util.SparseBooleanArray; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends ListActivity { 

    ArrayList<String> list = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 
    SharedPreferences sharedPreferences; 
    public int ItemCounter = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     LocationListener locListener = new MyLocationListener(); 
     locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, 
       locListener); 

     Button buttonAdd = (Button) findViewById(R.id.buttonAdd); 
     Button buttonDelete = (Button) findViewById(R.id.buttonDelete); 
     Button buttonSave = (Button) findViewById(R.id.buttonSave); 

     adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, list); 

     // Opening the sharedPreferences object 
     sharedPreferences = getSharedPreferences("SaveListItem", 0); 
     SharedPreferences mypreferences = getSharedPreferences(
       "myPrefs", Context.MODE_PRIVATE); 

     for (int Counter=0; Counter< sharedPreferences.getInt("Count", 0); Counter++) 
     { 
      list.add(sharedPreferences.getString("Item" + Integer.toString(Counter), "")); 
     } 

     OnClickListener listenerAdd = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       EditText edit = (EditText) findViewById(R.id.PearlNumber); 
       EditText edit1 = (EditText) findViewById(R.id.txtLatitude); 
       EditText edit2 = (EditText) findViewById(R.id.txtLongitude); 

       list.add("Pearl Number:" + edit.getText().toString() + " X:" 
         + edit1.getText().toString() + " Y:" 
         + edit2.getText().toString()); 
       // adapter.notifyDataSetChanged(); 
       SaveItem(edit.getText().toString(), edit1.getText().toString(), 
         edit2.getText().toString()); 
      }; 

     }; 

     OnClickListener listenerDel = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SparseBooleanArray checkedItemPositions = getListView() 
         .getCheckedItemPositions(); 
       int itemCount = getListView().getCount(); 

       for (int i = itemCount - 1; i >= 0; i--) { 
        if (checkedItemPositions.get(i)) { 
         adapter.remove(list.get(i)); 
        } 
       } 
       checkedItemPositions.clear(); 
       adapter.notifyDataSetChanged(); 

      } 
     }; 

     OnClickListener listenerSave = new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       sharedPreferences = getSharedPreferences("SaveListItem", 0); 
       SharedPreferences mypreferences = getSharedPreferences(
         "myPrefs", Context.MODE_PRIVATE); 
       SharedPreferences.Editor editor = mypreferences.edit(); 
       editor.putInt("Count", list.size()); 
       for (int i = 0; i < ItemCounter; i++) { 
        editor.putString("Item" + Integer.toString(i), list.get(i)); 
       } 
       editor.commit(); 
      } 

     }; 

     buttonAdd.setOnClickListener(listenerAdd); 
     buttonDelete.setOnClickListener(listenerDel); 
     buttonSave.setOnClickListener(listenerSave); 
     setListAdapter(adapter); 

    } 

    private void SaveItem(String pearl, String Anumber, String Bnumber) { 
     sharedPreferences = getSharedPreferences("SaveListItem", 0); 

     ItemCounter++; 

     /** Opening the editor object to write data to sharedPreferences */ 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 

     editor.putString("pearl" + Integer.toString((ItemCounter - 1)), pearl); 
     editor.putString("Anumber" + Integer.toString((ItemCounter - 1)), 
       Anumber); 
     editor.putString("Bnumber" + Integer.toString((ItemCounter - 1)), 
       Bnumber); 

     // Storing the count of Item count 
     editor.putInt("ItemCounter", ItemCounter); 
     /** Saving the values stored in the shared preferences */ 
     editor.commit(); 

    } 
+0

나는 그것이 마지막 항목을 저장하는 것 같은데요? – codeMagic

+1

문제가 발생한 곳을 누군가가 알아야 할 코드로 줄일 수 있습니까? 여러 파일 코드는 구문 분석 및 문제를 찾기가 어려울 수 있습니다. – Zyerah

+0

아무 것도 저장하지 않습니다. 오류가 없으므로 항목이 추가 된 것을 보여주고 일단 앱을 다시 열면 아무 것도 나타나지 않습니다. –

답변

0

가 여기에 저장된 항목을 표시하는 코드입니다 : 여기 내 코드입니다. 어쨌든 2 개의 문자열 "itemCount"와 "count"를 사용하여 카운트를 저장했습니다. 이런 식으로 뭔가를 시도 :

package com.example.stackoverflow; 

import android.app.ListActivity; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.util.SparseBooleanArray; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.EditText; 

import java.util.ArrayList; 

public class MyActivity extends ListActivity { 

    private static final String SAVE_LIST_ITEM = "SaveListItem"; 
    private static final String COUNT = "Count"; 
    ArrayList<String> list = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 
    SharedPreferences sharedPreferences; 
    public int itemCounter = 0; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
Button buttonAdd = (Button) findViewById(R.id.buttonAdd); 
Button buttonDelete = (Button) findViewById(R.id.buttonDelete); 
Button buttonSave = (Button) findViewById(R.id.buttonSave); 

adapter = new ArrayAdapter<String>(this, 
    android.R.layout.simple_list_item_1, list); 

// Opening the sharedPreferences object 
sharedPreferences = getSharedPreferences(SAVE_LIST_ITEM, MODE_PRIVATE); 
itemCounter = sharedPreferences.getInt(COUNT, 0); 
for (int i = 0; i < itemCounter; i++) { 
    list.add(sharedPreferences.getString("Item" + Integer.toString(i), "")); 
} 

buttonAdd.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    EditText edit = (EditText) findViewById(R.id.PearlNumber); 
    EditText edit1 = (EditText) findViewById(R.id.txtLatitude); 
    EditText edit2 = (EditText) findViewById(R.id.txtLongitude); 

    list.add("Pearl Number:" + edit.getText().toString() + " X:" 
     + edit1.getText().toString() + " Y:" 
     + edit2.getText().toString()); 
    // adapter.notifyDataSetChanged(); 
    saveItem(edit.getText().toString(), edit1.getText().toString(), 
     edit2.getText().toString()); 
    } 
}); 

buttonDelete.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    SparseBooleanArray checkedItemPositions = getListView() 
     .getCheckedItemPositions(); 
    int itemCount = getListView().getCount(); 

    for (int i = itemCount - 1; i >= 0; i--) { 
     if (checkedItemPositions.get(i)) { 
     adapter.remove(list.get(i)); 
     } 
    } 
    checkedItemPositions.clear(); 
    adapter.notifyDataSetChanged(); 
    } 
}); 

buttonSave.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putInt(COUNT, list.size()); 
    for (int i = 0; i < itemCounter; i++) { 
     editor.putString("Item" + Integer.toString(i), list.get(i)); 
    } 
    editor.commit(); 
    } 
}); 

setListAdapter(adapter); 

}

개인 무효 saveItem (문자열 진주 문자열 인 aNumber, 문자열 Bnumber) { itemCounter를 ++;

/** Opening the editor object to write data to sharedPreferences */ 
SharedPreferences.Editor editor = sharedPreferences.edit(); 

editor.putString("pearl" + Integer.toString((itemCounter - 1)), pearl); 
editor.putString("Anumber" + Integer.toString((itemCounter - 1)), 
    Anumber); 
editor.putString("Bnumber" + Integer.toString((itemCounter - 1)), 
    Bnumber); 

// Storing the count of Item count 
editor.putInt(COUNT, itemCounter); 
/** Saving the values stored in the shared preferences */ 
editor.commit(); 

} 은}

+0

고맙지 만 삭제 한 항목은 저장되지 않습니다. –

관련 문제