Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.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
Android 如何使用自定义适配器从ListView返回自定义对象_Android_Listview - Fatal编程技术网

Android 如何使用自定义适配器从ListView返回自定义对象

Android 如何使用自定义适配器从ListView返回自定义对象,android,listview,Android,Listview,尤其是老程序员。我需要一些帮助,因为我正在一个商业应用程序中使用一个ListView和一个自定义适配器,该应用程序需要一个order菜单,在此菜单中需要一些Edit Text字段。 我正在寻找某种方法来返回一个自定义对象,其中包含用户在字段中放置的值,我尝试使用listView.getItemAtPosition(X),但这会返回一个对象类的通用对象,我不知道如何将此对象转换为我的自定义类。 上面是我的自定义适配器: package com.mobile.pedido.pedidomob

尤其是老程序员。我需要一些帮助,因为我正在一个商业应用程序中使用一个ListView和一个自定义适配器,该应用程序需要一个order菜单,在此菜单中需要一些Edit Text字段。 我正在寻找某种方法来返回一个自定义对象,其中包含用户在字段中放置的值,我尝试使用listView.getItemAtPosition(X),但这会返回一个对象类的通用对象,我不知道如何将此对象转换为我的自定义类。 上面是我的自定义适配器:

    package com.mobile.pedido.pedidomobile.model.adapter;

    import android.content.Context;
    import android.graphics.Color;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    import com.mobile.pedido.pedidomobile.*;
    import com.mobile.pedido.pedidomobile.dao.local.ItemPedidoTempDAO;
    import com.mobile.pedido.pedidomobile.model.ItemPedidoModelo;
    import java.util.List;

    /**
     * Created by MATEUS on 11/02/2017.
     */
    public class ProdutoListamgePrecoAdapter extends BaseAdapter {

    private Context context;
    private List<ItemPedidoModelo> lista;
    int cod_pedido;
    TextView tv_sequencia, tv_nome_item;
    EditText et_quantidade, et_valor;
    Button btn_excluir;


    public ProdutoListamgePrecoAdapter(Context context, List<ItemPedidoModelo> lista, int cod_pedido) {
        this.context = context;
        this.lista = lista;
        this.cod_pedido = cod_pedido;
    }

    @Override
    public int getCount() {
        return lista.size();
    }

    @Override
    public Object getItem(int position) {
        return lista.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ItemPedidoModelo itemPedidoModelo = lista.get(position);

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.pedidoitempedido_itemprecoadapter, null);

         tv_sequencia = (TextView) layout.findViewById(R.id.pedidoitempedido_itemprecoadapter_sequencia);
         tv_nome_item = (TextView) layout.findViewById(R.id.pedidoitempedido_listagemadapter_nome);
         et_quantidade = (EditText) layout.findViewById(R.id.pedidoitempedido_itemprecoadapter_quantidade);
         et_valor = (EditText) layout.findViewById(R.id.pedidoitempedido_itemprecoadapter_preco);
         btn_excluir = (Button) layout.findViewById(R.id.pedidoitempedido_itemprecoadapter_excluir);

        tv_sequencia.setText(Integer.toString(itemPedidoModelo.getSequencia()));
        tv_nome_item.setText(itemPedidoModelo.getNome_item());

        et_quantidade.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                try {
                    lista.get(position).setQuantidade(et_quantidade.getText().toString());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });

        et_valor.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {



            }

            @Override
            public void afterTextChanged(Editable s) {
                try {
                    lista.get(position).setPreco(s.toString());
                    Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
                } catch (NumberFormatException e) {
                    Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
                    e.printStackTrace();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        });

        btn_excluir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    if (itemPedidoModelo.isAtivo()) {
                        ItemPedidoTempDAO iptdao = new ItemPedidoTempDAO();
                        iptdao.excluirItemPedidoTemp(context, cod_pedido, itemPedidoModelo.getSequencia());
                        btn_excluir.setText("EXCLUIDO");
                        btn_excluir.setEnabled(false);
                        btn_excluir.setTextColor(Color.RED);
                        tv_sequencia.setTextColor(Color.RED);
                        tv_nome_item.setTextColor(Color.RED);
                        et_quantidade.setEnabled(false);
                        et_valor.setEnabled(false);
                        itemPedidoModelo.setAtivo(false);

                    } else {
                    }

                } catch (Exception e) {
                    e.printStackTrace();
                }


            }
        });

        return layout;
    }
}

我使用以下代码访问listView的子级:

View listItem = listView.getChildAt(0);
TextView sequencia = (TextView) listItem.findViewById(R.id.pedidoitempedido_listagemadapter_nome);
我使用了listview的方法“getChildAt”,之后,我使用了findViewById和TextView,我需要获取文本值

我的介绍应该是“大家好,尤其是老程序员。”:/
View listItem = listView.getChildAt(0);
TextView sequencia = (TextView) listItem.findViewById(R.id.pedidoitempedido_listagemadapter_nome);