Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android上单击listview项获取值?(NullException错误)_Java_Android_Listview - Fatal编程技术网

Java 如何在Android上单击listview项获取值?(NullException错误)

Java 如何在Android上单击listview项获取值?(NullException错误),java,android,listview,Java,Android,Listview,我正在尝试从我的listview中检索项目名称和数量, 并将其显示到新类:Details.java上 以下是我的listview.java代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_item); //create items to displ

我正在尝试从我的listview中检索项目名称和数量, 并将其显示到新类:Details.java上

以下是我的listview.java代码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item);

        //create items to display in customized listview (Arraylist)
        displayiteminfo.add(new SalesItemInformationLV("Bread", 2));
        displayiteminfo.add(new SalesItemInformationLV("Butter", 9));
        displayiteminfo.add(new SalesItemInformationLV("Margarine", 8));


        //New array adapter for customised ArrayAdapter
        final ArrayAdapter<SalesItemInformationLV> adapter = new itemArrayAdapter(this, 0, displayiteminfo);
        //displayiteminfo - the ArrayList of item objects to display.

        //Find the list view, bind it with custom adapter
        final ListView listView = (ListView)findViewById(R.id.customListview);
        listView.setAdapter(adapter);

        //Selecting the listview item!
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                SalesItemInformationLV saleitem = (SalesItemInformationLV) listView.getSelectedItem();
 String namevalue = saleitem.getItemname(); ---> WHERE ERROR OCCURS
 int qtyvalue = saleitem.getItemquantity();

                Intent myintent = new Intent(ListView.this, Details.class);
                myintent.putExtra("itemname", namevalue);
                myintent.putExtra("itemqty", qtyvalue);

                startActivity(myintent);

            }
        });



    }





    //custom Arrayadapter
    class itemArrayAdapter extends ArrayAdapter<SalesItemInformationLV>
    {
        private  Context context;
        private List<SalesItemInformationLV> item;



        //constructor, call on creation
        public itemArrayAdapter(Context context, int resource, ArrayList<SalesItemInformationLV> objects) {

            //chaining to "default constructor" of ArrayAdapter manually
            super(context, resource, objects);
            this.context = context;
            this.item = objects;

        }

        //called to render the list

        public View getView(int position, View convertView, ViewGroup parent)
        {
            //get the item we are displaying
            SalesItemInformationLV iteminfo = item.get(position);

            //get the inflater and inflate the xml layout for each item
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            View view = inflater.inflate(R.layout.item_layout, null);

            //Each component of the custom item_layout
            TextView name = (TextView) view.findViewById(R.id.ItemNameSales);
            TextView qty = (TextView)view.findViewById(R.id.ItemNameQty);

            //set the name of item - access using an object!
            name.setText(String.valueOf(iteminfo.getItemname()));

            //set the quantity of item - access using an object!
            qty.setText(String.valueOf(iteminfo.getItemquantity()));

            return view;
            //Now return to onCreate to use this cuztomized ArrayAdapter
        }
    }

单击和选择是不同的事情

替换

SalesItemInformationLV saleitem = (SalesItemInformationLV) listView.getSelectedItem();


或者使用listView.getItemAtPosition(位置)哦,我明白了!select的用法是什么?谢谢你的帮助(顺便说一句!)当你需要选择项目时,你必须声明它是可选的,等等。不记得确切的细节,多年没有使用过:)
SalesItemInformationLV saleitem = (SalesItemInformationLV) listView.getSelectedItem();
SalesItemInformationLV saleitem = displayiteminfo.get(position)