2016-04-09 3 views
1

Also ich möchte zum Beispiel einen Namen übergeben in einer Zeile, die der Benutzer einer Listview ausgewählt. und ich möchte diesen Namen (das ist eine Zeichenfolge) an eine andere Aktivität übergeben.Wie kann ich Variablen aus ListView erhalten und an eine andere Aktivität übergeben?

Mein Tab1.java (die onCreateView)

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v =inflater.inflate(R.layout.tab1,container,false); 

    arrItems = getResources().getStringArray(R.array.fruitName); 
    images = getResources().obtainTypedArray(R.array.fruitImages); 
    prezzi = getResources().getStringArray(R.array.Price); 
    listView = (ListView) v.findViewById(R.id.customListView); 
    listAdapter = new ListAdapter(getContext(),arrItems,images,prezzi); 
    listView.setAdapter(listAdapter); 
    listView.setScrollingCacheEnabled(false); 
    listAdapter.setCustomButtonListener(this); 


    listView.setOnItemClickListener(
      new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //  final String selected = (String) parent.getSelectedItem(); 
        Intent i = new Intent(getActivity(), Pop.class); 
        // i.putExtra("name", selected); 
       // Toast.makeText(getActivity(), selected, Toast.LENGTH_LONG).show(); 
        startActivity (i); 
       } 
      } 
    ); 

    return v; 
} 

Dann werde ich den "Namen" in eine andere Tätigkeit übergeben, ist: Pop.java

@Override 
protected void onCreate(Bundle savedInsanceState) 
{ 
    super.onCreate(savedInsanceState); 

    setContentView(R.layout.popwindow); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    ImageView img = (ImageView) findViewById(R.id.imageView1); 
    TextView txtgrande = (TextView) findViewById(R.id.textView3); 
    TextView txtpiccolo = (TextView) findViewById(R.id.textView5); 
    TextView txtprezzo = (TextView) findViewById(R.id.textView12); 

    int larghezza = dm.widthPixels; 
    int altezza = dm.heightPixels; 

    getWindow().setLayout((int) (larghezza * .9), (int) (altezza * .7)); 

    Intent in = getIntent(); 
    String name = in.getStringExtra(("name"));//gets name from intent 

             /** ---------------- PARTE VERSIONE 2.0 (LISTVIEW DENTRO LE TAB) ------------------------ */ 
    if(name == "Alici fritte marinate") 
    { 
     img.setImageResource(R.drawable.alicifritte); 
     txtgrande.setText("Alici fritte marinate"); 
     txtprezzo.setText("9,50"); 
     txtpiccolo.setMovementMethod(new ScrollingMovementMethod()); 
     txtpiccolo.setText("Presentazione: \n" + 
       " Le alici fritte marinate sono un antipasto semplice ma allo stesso modo stuzzicante:" + 
       " \n si preparano aprendo le alici a libro, infarinandole e friggendole per poi lasciarle marinare per " + 
       "una nottata in un composto di aceto, vino bianco, peperoncino, cipolla e aglio." + 
       "\n\n Ingedienti:" + 
       "\n -Acciughe (alici) fresche 400 gr \n -Aceto di vino bianco 300 ml \n -Vino bianco 250 ml \n -Peperoncino piccante fresco \n" + 
       "-1 Sale q.b. \n -Aglio \n -2 spicchi Cipolle (cipollotto fresco o scalogno) \n -1 Farina q.b. per infarinare le alici"); 
    } 
    if(name == "Alette di pollo") 
    { 
     img.setImageResource(R.drawable.alettedipollo); 
     txtgrande.setText("Alette di pollo"); 
     txtprezzo.setText("8,50"); 
     txtpiccolo.setMovementMethod(new ScrollingMovementMethod()); 
     txtpiccolo.setText("Le alette di pollo finto fritto al forno sono un antipasto appetitoso da gustare in compagnia! "+ 
       " \n Questa prelibatezza di solito viene gustata fritta, come la ricetta americana vuole, ma " + 
       "noi vi proponiamo una variante che vede le alette impanate e saltate in padella per poi " + 
       " essere passate al grill del forno in modo d risultare ugualmente croccanti e irresistibili! \n\nIngredienti:\n "+ 
       "-Pollo ali 9"+ 
       "-Farina integrale 60 g\n" + 
       "-Paprika 2 g\n" + 
       "-Pangrattato 20 g\n" + 
       "-Cognac 50 g\n" + 
       "-Olio di oliva extravergine 50 g\n" + 
       "-Sale fino 3 g\n" + 
       "-Riso venere 150 g\n" + 
       "-Carote 100 g"); 
    } 

i erstellt die Array für die Listenansicht in string.xml

<resources> 
<string name="app_name">Ristorante</string> 

<!--Antipasti--> 
<string-array name="fruitName"> 
    <item>Alici fritte marinate</item> 
    <item>Alette di pollo</item> 
    <item>Alici marinate</item> 
</string-array> 
<string-array name="fruitImages"> 
    <item>@mipmap/alicifritte</item> 
    <item>@mipmap/alettedipollo</item> 
    <item>@mipmap/alicimarinate</item> 
</string-array> 
<string-array name="Price"> 
    <item>9,50 $</item> 
    <item>8,50 $</item> 
    <item>9,00 $</item> 
</string-array> 

<!--Primi piatti--> 
<string-array name="PrimiName"> 
    <item>Spaghetti allo scoglio</item> 
    <item>Penne al fumè</item> 
    <item>Agnolotti</item> 
</string-array> 
<string-array name="PrimiImages"> 
    <item>@mipmap/spaghettiscoglio</item> 
    <item>@mipmap/pennefume</item> 
    <item>@mipmap/agnolotti</item> 
</string-array> 
<string-array name="PrimiPrice"> 
    <item>9,00 $</item> 
    <item>9,50 $</item> 
    <item>10,50 $</item> 
</string-array> 

<!--Secondi piatti--> 
<string-array name="SecondiName"> 
    <item>Agnello cacio e ova</item> 
    <item>Agnello a scottadito</item> 
    <item>Anatra alla arancia</item> 
</string-array> 
<string-array name="SecondiImages"> 
    <item>@mipmap/agnellocacioeova</item> 
    <item>@mipmap/abbacchioascottadito</item> 
    <item>@mipmap/anatraarancia</item> 
</string-array> 
<string-array name="SecondiPrice"> 
    <item>8,50 $</item> 
    <item>9,50 $</item> 
    <item>10,00 $</item> 
</string-array> 

<!--Contorni--> 
<string-array name="ContorniName"> 
    <item>Asparagi Giallo Zabaione</item> 
    <item>Barba di frate</item> 
    <item>Barbabietole agrodolci</item> 
</string-array> 
<string-array name="ContorniImages"> 
    <item>@mipmap/asparagiallozabaione</item> 
    <item>@mipmap/barbadifrate</item> 
    <item>@mipmap/barbabietoleagrodolci</item> 
</string-array> 
<string-array name="ContorniPrice"> 
    <item>4,00 $</item> 
    <item>4,50 $</item> 
    <item>3,50 $</item> 
</string-array> 

<!--Dolci--> 
<string-array name="DolciName"> 
    <item>Bellini cocktail</item> 
    <item>Caffè shakerato</item> 
    <item>Cosmopolitan</item> 
</string-array> 
<string-array name="DolciImages"> 
    <item>@mipmap/bellinicocktail</item> 
    <item>@mipmap/caffeshakerato</item> 
    <item>@mipmap/cosmopolitan</item> 
</string-array> 
<string-array name="DolciPrice"> 
    <item>2,50 $</item> 
    <item>3,00 $</item> 
    <item>3,00 $</item> 
</string-array> 

<!--Bevande--> 
<string-array name="BevandeName"> 
    <item>Alfajores</item> 
    <item>Alberi di natale</item> 
    <item>Amaretti</item> 
</string-array> 
<string-array name="BevandeImages"> 
    <item>@mipmap/alfajores</item> 
    <item>@mipmap/alberinatale</item> 
    <item>@mipmap/amaretti</item> 
</string-array> 
<string-array name="BevandePrice"> 
    <item>4,50 $</item> 
    <item>5,00 $</item> 
    <item>2,50 $</item> 
</string-array> 

!! In einer Reihe gibt es zwei Knöpfe (+ und -), vielleicht lassen sie mich die Reihe nicht auswählen.

Das Problem ist, dass wenn ich eine Zeile auswählen es die Nachricht nicht erscheinen ich auf meinem Tab1.java setzen (der Toast)

+0

zu erhalten Du willst 'arrItems [position]'. –

+0

ja, aber das erste Problem ist, dass ich keine Zeile infact wählen kann, geht es nicht zur Pop-Aktivität wie ich auf tab1.java mit der Absicht zeigen, wird die Aktion durch die Tasten unterbrochen? –

+0

Wenn Sie 'Button' in Ihren Listeneinträgen haben, dann stören sie den Listeneintrag. –

Antwort

0
listView.setOnItemClickListener(
     new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      //  final String selected = (String) parent.getSelectedItem(); 
       Intent i = new Intent(getActivity(), Pop.class); 
      //this would put your name into a intent extra 
       i.putextra("name", arritems.get(position); 

       // i.putExtra("name", selected); 
      // Toast.makeText(getActivity(), selected, Toast.LENGTH_LONG).show(); 
       startActivity (i); 
      } 
     } 

die extra

String fruitName = i.getStringExtra("name"); 
+0

'arrItems' ist ein Array, keine Liste. –

+0

Danke, du hast mein Problem gelöst! –

+0

anyaways anstelle von i.putextra ("name", arritems.get (position); Sie müssen i.putExtra eingeben ("name", arrItems [position]); –