J'ai essayé d'obtenir une réponse à ce que je fais de mal partout. Je voudrais que l'utilisateur sélectionne un bouton dans la classe appelante, ouvre un listactivity appelé qui affiche le contenu d'une base de données, laisse l'utilisateur cliquer sur une entrée, copie cette entrée dans une nouvelle base de données, renvoie le rowid de la nouvelle base de données la classe appelante et que la classe appelante attribue le titre de la nouvelle entrée de la base de données au bouton d'origine qui a été poussé.Base de données Quandry
Voici la classe d'appel
static final private int CHOOSE_MONDAY = 0;
static final private int CHOOSE_TUESDAY = 0;
private int ButtonPushed = 0;
private NotesDbAdapter mDbHelper;
private MenuDbAdapter menuDbHelper;
private Long mRowId;
String menuTitle;
String menuProtein;
String menuBody;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.plan_menu);
Toast.makeText(this, "Choose a day to pick a meal for!", Toast.LENGTH_LONG).show();
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();
menuDbHelper = new MenuDbAdapter(this);
menuDbHelper.open();
}
public void mButtonHandler(View target)
{
switch(target.getId())
{
case R.id.monday:
// Create new intent object and tell it to call the ColorPicker class
Intent question = new Intent(this, PlanMenuList.class);
// Start ColorPicker as a new activity and wait for the result
startActivityForResult(question, CHOOSE_MONDAY);
break;
case R.id.tuesday:
// Create new intent object and tell it to call the ColorPicker class
Intent question1 = new Intent(this, PlanMenuList.class);
// Start ColorPicker as a new activity and wait for the result
startActivityForResult(question1, CHOOSE_TUESDAY);
break;
}
Et puis c'est la classe appelée où je suis en train de copier dans la sélection de l'utilisateur à la nouvelle base de données, puis renvoyer l'identifiant à la classe d'appel.
public class PlanMenuList extends ListActivity {
private NotesDbAdapter mDbHelper;
private MenuDbAdapter menuDbHelper;
private List<Data>data;
String menuTitle;
String menuProtein;
String menuBody;
private Long mRowId;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notes_list);
mDbHelper = new NotesDbAdapter(this);
menuDbHelper = new MenuDbAdapter(this);
mDbHelper.open();
menuDbHelper.open();
fillData();
}
private void fillData() {
Cursor notesCursor = mDbHelper.fetchAllNotes();
startManagingCursor(notesCursor);
// Create an array to specify the fields we want to display in the list (only TITLE)
String[] from = new String[]{NotesDbAdapter.KEY_TITLE};
// and an array of the fields we want to bind those fields to (in this case just text1)
int[] to = new int[]{R.id.text1};
// Now create a simple cursor adapter and set it to display
SimpleCursorAdapter notes =
new SimpleCursorAdapter(this, R.layout.notes_row, notesCursor, from, to);
setListAdapter(notes);
}
private void populateFields() {
if (mRowId != null) {
Cursor note = mDbHelper.fetchNote(mRowId);
startManagingCursor(note);
menuTitle=(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_TITLE)));
menuProtein=(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_PROTEIN)));
menuBody=(note.getString(
note.getColumnIndexOrThrow(NotesDbAdapter.KEY_BODY)));
}
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
mDbHelper.fetchNote(id);
mRowId = id;
//populateFields();
menuDbHelper.createMenu("Monday", menuTitle, menuProtein, menuBody);
Intent answer = new Intent();
answer.putExtra("MenuDbAdapter.KEY_ROWID", mRowId);
setResult(RESULT_OK, answer);
finish();
}
}
J'ai été déconner avec cette chose pendant des jours et ne peut pas sembler obtenir à faire ce que je veux - toute aide serait appréciée.
Merci beaucoup pour votre aide, je l'apprécie. Je n'ai pas réalisé que getExtra et getExtras étaient deux choses totalement différentes ... peut-être acheter un livre n'est pas une si mauvaise idée. – Will
Pas de problème. Vous pouvez également regarder le code pour les applications de base Android sur Google Code. rendez-vous sur www.google.com/codesearch et effectuez une recherche, par exemple: 'package de calendrier:" git: //android.git.kernel.org "lang: java' –