简体   繁体   English

如何从listview获取变量并传递给另一个活动?

[英]How can i get variable from listview and pass to another activity?

So i want to pass, for example, a name inserted in a row that the user selected of a listview. 因此,我希望传递一个名称,该名称插入用户选择的列表视图中。 and i want to pass that name (that is a string) to another activity. 我想将该名称(即字符串)传递给另一个活动。

My Tab1.java (the onCreateView) 我的Tab1.java (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;
}

Then i will pass the "name" into another activity that is: Pop.java 然后我将“名称”传递给另一个活动: 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 created the array for the listview in string.xml 我在string.xml中为listview创建了数组

<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 a row there are two buttons (+ and -), maybe they don't make me select the row. 连续有两个按钮(+和 - ),也许它们不会让我选择行。

The problem is that if i select a row it doesn't appear the message i put on my Tab1.java (the Toast) 问题是如果我选择一行它不会出现我放在我的Tab1.java(Toast)上的消息

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);
            }
        }

to get the extra 得到额外的

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我如何将整个ListView项目从一个Activity传递到android中的另一个项目 - How can I pass the entire ListView item from one Activity to another in android 如何从一个活动传递int变量值以覆盖另一个活动中的textview - How can I pass an int variable value from one activity to overwrite a textview in another activity 如何在NPE没有设备崩溃的情况下将变量从一个活动传递到另一个活动? - How can I pass variable from one activity to another without device crashing for NPE? 如何将变量从一个活动传递到另一个活动? - How to pass variable from one activity to another? 如何将数据正确地从一项活动传递到另一项活动? - how can I pass data correctly from one activity to another? 如何将 Bitmap 对象从一个活动传递到另一个活动 - How can I pass a Bitmap object from one activity to another 如何将数据从列表视图传递到另一个活动页面? - how to pass data from listview to another activity page? 将listview中的整数传递给另一个活动 - pass integer from listview to another activity 如何在另一个活动中获取变量? - How do I get a variable in another activity? 我如何获得一个将项目添加到arraylist然后添加到另一个片段活动中的listview的按钮 - How can i get a button to add an item to an arraylist then to a listview in another fragment activity
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM