Wdmprojekt
- Forum-Beiträge: 33
12.01.2011, 10:28:23 via Website
12.01.2011 10:28:23 via Website
Hallo ich möchte folgenden Ansatz transferieren auf ein Cursor Objekt,
also Daten nicht aus einem Array an das Menu binden, sondern Daten aus der Datenbank.
Wie mache ich das, vorausgesetzt, dass alle Daten bereits in "Cursor DB.getAllEntries()" zur Verfügung stehen?
Sorry für die unschöne Code-Formatierung, aber die Code-Formatierung greift irgendwie nicht...
[code]
public class ListActivity extends Activity {
private String[] Countries;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// The data for the list
Countries = getResources().getStringArray(R.array.countries);
Arrays.sort(Countries);
// The list view
ListView list = (ListView)findViewById(R.id.list);
// Bind data to list and register for context menu
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, Countries);
list.setAdapter(adapter);
registerForContextMenu(list);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if (v.getId()==R.id.list) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(Countries[info.position]);
String[] menuItems = getResources().getStringArray(R.array.menu);
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menu);
String menuItemName = menuItems[menuItemIndex];
String listItemName = Countries[info.position];
Toast toast = Toast.makeText(this, String.format("Selected %s for item %s", menuItemName, listItemName), Toast.LENGTH_SHORT);
toast.show();
return true;
}
}
[/code]
also Daten nicht aus einem Array an das Menu binden, sondern Daten aus der Datenbank.
Wie mache ich das, vorausgesetzt, dass alle Daten bereits in "Cursor DB.getAllEntries()" zur Verfügung stehen?
Sorry für die unschöne Code-Formatierung, aber die Code-Formatierung greift irgendwie nicht...
[code]
public class ListActivity extends Activity {
private String[] Countries;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// The data for the list
Countries = getResources().getStringArray(R.array.countries);
Arrays.sort(Countries);
// The list view
ListView list = (ListView)findViewById(R.id.list);
// Bind data to list and register for context menu
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.listitem, Countries);
list.setAdapter(adapter);
registerForContextMenu(list);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if (v.getId()==R.id.list) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(Countries[info.position]);
String[] menuItems = getResources().getStringArray(R.array.menu);
for (int i = 0; i<menuItems.length; i++) {
menu.add(Menu.NONE, i, i, menuItems[i]);
}
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
int menuItemIndex = item.getItemId();
String[] menuItems = getResources().getStringArray(R.array.menu);
String menuItemName = menuItems[menuItemIndex];
String listItemName = Countries[info.position];
Toast toast = Toast.makeText(this, String.format("Selected %s for item %s", menuItemName, listItemName), Toast.LENGTH_SHORT);
toast.show();
return true;
}
}
[/code]
— geändert am 12.01.2011, 14:22:44
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.