Ciao...
ho un main che lancia la Activity che mostrerò in seguito.
Se metto il "setResult" dentro la "onCreate" funziona tutto e i parametri mi tornano al main,
se invece passo da una nuova Intent non riesco piu a tornare al main (con i parametri restituiti)
ecco il codice della seconda Activity:
Il problema è che i parametri passano e tornano al main..solo dopo aver premuto il tasto "back"... ovverocodice:public class LoremBase extends ListActivity { private String id_comune; private String nome_comune=null; private DatabaseHelper db; private static final int LOCAL_SEARCH_ID = Menu.FIRST+1; private static final int GLOBAL_SEARCH_ID = Menu.FIRST+2; TextView selection; ArrayList<String> items=new ArrayList<String>(); Intent data; Activity a= this; Context c; protected void onDestroy() { if(this.db!=null)this.db.close(); ((SearchManager)getSystemService("search")).setOnCancelListener(null); super.onDestroy(); } @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); selection=(TextView)findViewById(R.id.selection); setTitle("Digita il nome del comune"); // SearchManager localSearchManager = (SearchManager)getSystemService("search"); setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); onNewIntent(getIntent()); onSearchRequested(); super.onCreate(icicle); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); String str1 = intent.getAction(); /* Se ho premuto il tasto cerca */ if ("android.intent.action.SEARCH".equals(str1)) { ListAdapter adapter=null; String query=intent.getStringExtra(SearchManager.QUERY); if(items!=null)items.clear(); DatabaseHelper databaseHelper = new DatabaseHelper(this); this.db=databaseHelper; Cursor cur = databaseHelper.getComune(query); cur.moveToFirst(); while (cur.isAfterLast() == false) { items.add(cur.getString(cur.getColumnIndex(Comuni_table.NOME))); cur.moveToNext(); } cur.close(); adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,items); setListAdapter(adapter); } return; } @Override public void finish() { Intent data = new Intent(); data.putExtra("returnKey1", "Swinging on a star. "); setResult(RESULT_OK, data); super.finish(); } @Override public void onListItemClick(ListView parent, View v, int position, long id) { finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, LOCAL_SEARCH_ID, Menu.NONE, "Local Search") .setIcon(android.R.drawable.ic_search_category_default); menu.add(Menu.NONE, GLOBAL_SEARCH_ID, Menu.NONE, "Global Search") .setIcon(R.drawable.search) .setAlphabeticShortcut(SearchManager.MENU_KEY); return(super.onCreateOptionsMenu(menu)); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case LOCAL_SEARCH_ID: onSearchRequested(); return(true); case GLOBAL_SEARCH_ID: startSearch(null, false, null, true); return(true); } return(super.onOptionsItemSelected(item)); } }
ogni volta che faccio una ricerca col search passo da onCreate()
e quindi creo un nuovo intent..
dovrei distruggere il vecchio intent, ma come?
Mi sa che sto sbagliando qualcosa
Qualcuno, se ha voglia, potrebbe darmi una dritta?
[ R I S O L T O ]
..mancavano
setOnDismissListener e setOnCancelListener

LinkBack URL
About LinkBacks
Ultima modifica di walter; 09-11-11 alle
Rispondi quotando
