Autore Topic: Inserire immagini in descrizione usando master detail  (Letto 808 volte)

Offline eugypalu

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Inserire immagini in descrizione usando master detail
« il: 23 Aprile 2015, 18:31:55 CEST »
0
Salve a tutti.
Ho un piccolo problema, sto usando un master detail perchè avrei bisogno di una lista dove ad ogni elemento corrisponda una descrizione ed una immagine, il problema è che non riesco ad inserire l'immagine, come potrei fare?
Grazie a tutti

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Inserire immagini in descrizione usando master detail
« Risposta #1 il: 25 Aprile 2015, 10:10:11 CEST »
0
se ho capito bene l'immagine è il dettaglio giusto?  e il master/detail lo hai creato partendo da quello di default di Android Studio?
« Ultima modifica: 25 Aprile 2015, 10:26:12 CEST da felasandroid »

Offline eugypalu

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Inserire immagini in descrizione usando master detail
« Risposta #2 il: 25 Aprile 2015, 12:48:49 CEST »
0
Scusa, non mi sono espresso benissimo.
Comunque si, ho creato il master/detail partendo da quello di android studio, il dettaglio dovrebbe essere composto da una TextView e un' immagine.
Il problema è che inserendo la textview non riesco poi ad aggiungere anche un ImageWiev.
Come posso fare?

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Inserire immagini in descrizione usando master detail
« Risposta #3 il: 25 Aprile 2015, 14:49:19 CEST »
0
Scusa, non mi sono espresso benissimo.
Comunque si, ho creato il master/detail partendo da quello di android studio, il dettaglio dovrebbe essere composto da una TextView e un' immagine.
Il problema è che inserendo la textview non riesco poi ad aggiungere anche un ImageWiev.
Come posso fare?

ultima domanda questa immagine la ottieni come? tipo l'hai già nelle risorse? la prendi a fronte di una richiesta http?

Offline eugypalu

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Inserire immagini in descrizione usando master detail
« Risposta #4 il: 25 Aprile 2015, 15:44:26 CEST »
0
L'immagine che mi serve sta nella cartella drawable

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Inserire immagini in descrizione usando master detail
« Risposta #5 il: 26 Aprile 2015, 11:11:39 CEST »
+1
L'immagine che mi serve sta nella cartella drawable

Capito. Allora puoi fare così:

1) Nel fragment master (quindi la lista) ti crei un ArrayList di HashMap e lo popoli con i vari elementi e setti l'adapter (in questo esempio setto un'immagine fissa per tutti gli elementi della lista e un titolo):
Codice (Java): [Seleziona]
        ArrayList<HashMap<String, Object>> oslist = new ArrayList<HashMap<String, Object>>();

                                        map.put("id",  String.valueOf(i));
                                        map.put("Image", R.drawable.book); // facoltativo
                                        map.put("Titolo",   "Titolo");
                         
                                        oslist.add(map);

//layout_item_list formato da un immagine e una textview                               

                                     setListAdapter(new SimpleAdapter(
                        getActivity(), oslist, R.layout.item_list,
                        new String[] {"Image", "Titolo"}, new int[] {
                        R.id.image,R.id.title}));
                
2) Devo passare questa lista e l'elemento selezionato al fragment di dettaglio devi modificare la callback di default:

Codice (Java): [Seleziona]
    @Override
    public void onListItemClick(ListView listView, View view, int position, long id) {
        super.onListItemClick(listView, view, position, id);

        // Notify the active callbacks interface (the activity, if the
        // fragment is attached to one) that an item has been selected.
        mCallbacks.onItemSelected(mlist.get(position).get("id").toString(), oslist);
    }

quindi nell'activity master dovrai modificare:

Codice (Java): [Seleziona]
@Override
    public void onItemSelected(String id,ArrayList<HashMap<String, Object>> list) {
        if (mTwoPane) {

            Bundle arguments = new Bundle();
            arguments.putString(structureSearchDetailFragment.ARG_ITEM_ID, id);
            arguments.putSerializable(structureSearchDetailFragment.ARG_LIST,list);

            structureSearchDetailFragment fragment = new structureSearchDetailFragment();
            fragment.setArguments(arguments);
            getSupportFragmentManager().beginTransaction()
                    .replace(R.id.structuresearch_detail_container, fragment)
                    .commit();

        } else {
         
            Intent detailIntent = new Intent(this, structureSearchDetailActivity.class);
            detailIntent.putExtra(structureSearchDetailFragment.ARG_ITEM_ID, id);
            detailIntent.putExtra(structureSearchDetailFragment.ARG_LIST, list); //Aggiunto

            startActivity(detailIntent);
        }
    }

Nell'activity dettaglio dovrai modificarla ovviamente:


 
Codice (Java): [Seleziona]
if (savedInstanceState == null) {
            // Create the detail fragment and add it to the activity
            // using a fragment transaction.
            Bundle arguments = new Bundle();
            arguments.putString(structureSearchDetailFragment.ARG_ITEM_ID,
                    getIntent().getStringExtra(structureSearchDetailFragment.ARG_ITEM_ID));

            arguments.putSerializable(structureSearchDetailFragment.ARG_LIST,
                    getIntent().getSerializableExtra(structureSearchDetailFragment.ARG_LIST));

            structureSearchDetailFragment fragment = new structureSearchDetailFragment();
            fragment.setArguments(arguments);
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.structuresearch_detail_container, fragment)
                    .commit();
        }

Infine nel fragment di dettaglio:
Codice (Java): [Seleziona]
    public static final String ARG_LIST = "list";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getArguments().containsKey(ARG_ITEM_ID)) {

            ArrayList<HashMap<String, Object>> mList = (ArrayList<HashMap<String, Object>>)getArguments().getSerializable(ARG_LIST);

            map = mList.get(Integer.parseInt(getArguments().getString(ARG_ITEM_ID)));
            mTitle = (String) map.get("Titolo");
 
          // ora qui in base al titolo puoi selezionare il drawable che vuoi e settarlo all'ImageView di dettaglio


In sostanza nel master mi creo la lista e la faccio vedere, poi selezionando un elemento della lista lui chiama il dettaglio e gli passa la lista, ti prendi la lista ti prendi un valore che ti fa capire quale elemento è (nel caso sopra il titolo) e associ il drawable giusto.

Spero sia sufficentemente chiaro, ti ho postato le modifiche base

Offline eugypalu

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Inserire immagini in descrizione usando master detail
« Risposta #6 il: 26 Aprile 2015, 13:28:35 CEST »
0
Grazie mille  :-) , appena posso lo provo

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Inserire immagini in descrizione usando master detail
« Risposta #7 il: 26 Aprile 2015, 18:35:10 CEST »
0
Grazie mille  :-) , appena posso lo provo

Prego!