Zooklubba, tack för ditt svar!
Jag har främst tänkt på ditt andra förslag: "kalla fillData och säga till listan att du uppdaterat informationen. " Jag är dock osäker på hur jag bör implementera detta - dels handlar det om (1) jag bör hålla allt i en fillData eller om jag bör ha fler fillData funktioner för när jag klickar, (2) hur jag spolar listan och/eller curson (?) till fördel för en ny, samt (3) hur jag hanterar BACK-knappen så att jag "kommer tillbaka" till samma ställe då jag tycker på detta.
Jag funderar på att starta nya aktiviteter istället om jag inte löser detta snabbt, har klurat för länge med det.
Skulle uppskatta lite hints på min kod.
HTML:
package com.mappbridge.rentaram_app_1;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.ListAdapter;
public class Products extends ListActivity
{
DbHelper dbHelper;
OnItemClickListener listener;
private ListView lv;
private Cursor cursorC=null;
SimpleCursorAdapter products_list;
private int intRowId;
String currentID = "0"; //NEW
public void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.products_list_item);
dbHelper = new DbHelper(this);
dbHelper.open();
fillData();
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long rowId)
{
Log.d("Clicked", Integer.toString((int)rowId));
fillData2(Integer.toString((int)rowId));
//intRowId = (int) rowId;
//fillData();
}
});
//1, 29
//TextView textview = new TextView(this);
//textview.setText("This is the Products tab");
//setContentView(textview);
}
public void fillData()
{
cursorC = dbHelper.fetchCategories("Category");
startManagingCursor(cursorC);
String[] from = new String[] { DbHelper.CATEGORY_NAME };
int [] to = new int[] {R.id.products_row_layout};
products_list = new SimpleCursorAdapter(this, R.layout.products_row, cursorC, from, to);
setListAdapter(products_list);
}
public void fillData2(String parentId)
{
cursorC = dbHelper.fetchProducts("Category", parentId);
startManagingCursor(cursorC);
String[] from = new String[] { DbHelper.CATEGORY_NAME };
int [] to = new int[] {R.id.products_row_layout};
products_list = new SimpleCursorAdapter(this, R.layout.products_row, cursorC, from, to);
/*
//NEW
c.moveToFirst();
while(c.move(1))
{
Log.d("Info", c.getString(0));
}
//NEW
*/
//setListAdapter(products_list);
products_list.notifyDataSetInvalidated();
}
@Override
protected void onDestroy()
{
Log.d("Products", "onDestroyTagProd");
super.onDestroy();
dbHelper.close();
}
}