2013-03-06 3 views
1

вот логарифм. какая здесь ошибка?Sqlite Listview очищается, когда назад нажата

03-07 03:11:55.841: D/dalvikvm(292): GC_EXTERNAL_ALLOC freed 4085 objects/243720 bytes in 190ms 
03-07 03:11:56.221: D/dalvikvm(292): GC_EXTERNAL_ALLOC freed 303 objects/16040 bytes in 85ms 
03-07 03:12:06.990: W/KeyCharacterMap(292): No keyboard for id 0 
03-07 03:12:06.990: W/KeyCharacterMap(292): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
03-07 03:12:07.190: E/Cursor(292): Invalid statement in fillWindow() 

первых действия, которые получают данные из моего sqliteadapter

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search); 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 


    mySQLiteAdapter = new SQLiteAdapter(this); 
    mySQLiteAdapter.openToRead(); 

    Cursor cursor = mySQLiteAdapter.queueAll(); 
    startManagingCursor(cursor); 

    String[] from = new String[]{SQLiteAdapter.KEY_FOODNAME,SQLiteAdapter.KEY_CALORIES}; 
    int[] to = new int[]{R.id.tv1, R.id.tv2}; 

    SimpleCursorAdapter cursorAdapter = 
    new SimpleCursorAdapter(this, R.layout.row, cursor, from, to); 

    listContent1.setAdapter(cursorAdapter); 
    listContent1.setOnItemClickListener(listContentOnItemClickListener); 
    mySQLiteAdapter.close(); 
    private ListView.OnItemClickListener listContentOnItemClickListener = new ListView.OnItemClickListener(){ 
public void onItemClick(AdapterView<?> parent, View view, int position, 
     long id) { 

    Cursor cursor = (Cursor) parent.getItemAtPosition(position); 

    String item_content1 = cursor.getString(cursor.getColumnIndex(SQLiteAdapter.KEY_FOODNAME)); 
    String item_content2 = cursor.getString(cursor.getColumnIndex(SQLiteAdapter.KEY_CALORIES)); 
    arlene = arlene + Integer.parseInt(item_content2); 
    String item = String.valueOf(" Food Name: " + item_content1) + "\n" + 
      " Calories: " + item_content2; 

    Toast.makeText(Search.this, item, Toast.LENGTH_LONG).show();  

    food.setText(item_content1); 
    calories.setText(String.valueOf(arlene)); 


    Intent myIntent = new Intent(Search.this, Foodlog.class); 
    Bundle bundle = new Bundle(); 
    bundle.putString("SQLITEDATA1", food.getText().toString()); 
    bundle.putString("SQLITEDATA2", calories.getText().toString()); 
    myIntent.putExtras(bundle); 
    startActivity(myIntent); 



    SavePreferences("calories", calories.getText().toString()); 
    LoadPreferences(); 

второй активность, которая получает данные, передаваемые

Bundle bundle = getIntent().getExtras(); 
    if(bundle != null){ 
    String food = bundle.getString("SQLITEDATA1"); 
    String calories = bundle.getString("SQLITEDATA2"); 

    String[] values = new String[] { food, calories }; //That you got from your intent bundle 
    LVAdapter adapter = new LVAdapter(this, R.layout.foodlist, values); 
    setListAdapter(adapter); 

и когда я нажал обратно, он очистит все данные ListView по моему 1-му действию

+0

пожалуйста, вы можете поделиться код – MDMalik

+0

невозможно сказать, не видя соответствующий код, и если есть какие-либо больше ошибок LogCat. Но это может помочь: [что делает Invalid statement в fillWindow() в указателе android?] (Http://stackoverflow.com/questions/4195089/what-does-invalid-statement-in-fillwindow-in-android-cursor -mean) – Sam

+0

отправил его, пожалуйста, помогите мне –

ответ

1

In onCreate удалить

mySQLiteAdapter.close(); 

переместить его в OnDestroy

@override 
protected void onDestroy() 
{ 
    mySQLiteAdapter.close(); 
} 
Смежные вопросы