Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.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/2/batch-file/5.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_Scroll_Android Arrayadapter - Fatal编程技术网

Android 当项目值更改时,如何保持listview位置?

Android 当项目值更改时,如何保持listview位置?,android,listview,scroll,android-arrayadapter,Android,Listview,Scroll,Android Arrayadapter,当项目值(edtQtde)更改时,如何保持listview位置 创建ListView的活动: repositorioProdutos = new RepositorioProdutos(conn,this); repositorioPedidosProdutos = new RepositorioPedidosProdutos(conn); adpProdutos = repositorioProdutos.buscaProdutos(this)

当项目值(edtQtde)更改时,如何保持listview位置

创建ListView的活动:

        repositorioProdutos = new RepositorioProdutos(conn,this);
        repositorioPedidosProdutos = new RepositorioPedidosProdutos(conn);

        adpProdutos = repositorioProdutos.buscaProdutos(this);

        lstProdutos.setAdapter(adpProdutos);
        lstProdutos.setItemsCanFocus(true);
在数据库中查找数据并放入ArrayAdapter的方法:

    public ArrayAdapter<Produtos> buscaProdutos(Context context)
{
    ProdutosArrayAdapter adpProdutos = new ProdutosArrayAdapter(context, R.layout.item_produto);

    Cursor cursor = conn.query("PRODUTOS", null, null, null, null, null, null);

    if (cursor.getCount() > 0)
    {
        cursor.moveToFirst();
        do
        {
            Produtos produtos = new Produtos();
            produtos.setCodigo(cursor.getInt(cursor.getColumnIndex("COD_PRODUTO")));
            produtos.setNome(cursor.getString(cursor.getColumnIndex("NOME")));
            produtos.setDesc(cursor.getString(cursor.getColumnIndex("DESCR")));
            produtos.setGrupo(cursor.getString(cursor.getColumnIndex("GRUPO")));
            produtos.setSubgrupo(cursor.getString(cursor.getColumnIndex("SUBGRUPO")));
            produtos.setMedida(cursor.getString(cursor.getColumnIndex("MEDIDA")));
       //     produtos.setQuantidade(cursor.getColumnIndex("QUANTIDADE"));

            adpProdutos.add(produtos);
            adpProdutos.notifyDataSetChanged();

        }while (cursor.moveToNext());
    }
    adpProdutos.notifyDataSetChanged();
    return adpProdutos;
}
public ArrayAdapter buscaProdutos(上下文)
{
ProdutosArrayAdapter adpProdutos=新的ProdutosArrayAdapter(上下文,R.layout.item_produto);
Cursor Cursor=conn.query(“PRODUTOS”,null,null,null,null,null);
if(cursor.getCount()>0)
{
cursor.moveToFirst();
做
{
Produtos Produtos=新Produtos();
setCodigo(cursor.getInt(cursor.getColumnIndex(“COD_PRODUTO”));
setNome(cursor.getString(cursor.getColumnIndex(“NOME”));
produtos.setDesc(cursor.getString(cursor.getColumnIndex(“DESCR”)));
setGrupo(cursor.getString(cursor.getColumnIndex(“GRUPO”));
produtos.setSubgrupo(cursor.getString(cursor.getColumnIndex(“SUBGRUPO”));
setMedida(cursor.getString(cursor.getColumnIndex(“MEDIDA”));
//setQuantidade(cursor.getColumnIndex(“QUANTIDADE”);
adpProdutos.add(produtos);
adprodutos.notifyDataSetChanged();
}while(cursor.moveToNext());
}
adprodutos.notifyDataSetChanged();
返回ADPRODUTOS;
}
ArrayAdapter类:

    public class ProdutosArrayAdapter extends ArrayAdapter<Produtos> {

private int resource = 0;
private LayoutInflater inflater;
private Context context;

public ProdutosArrayAdapter(Context context, int resource ) {
    super(context, resource);
    inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.resource = resource;
    this.context= context;
}

public View getView(final int position, View convertView, ViewGroup parent)
{
    View view = null;
    ViewHolder viewHolder = null;

    if (convertView == null)
    {
        viewHolder = new ViewHolder();
        view = inflater.inflate(resource, parent, false);
        viewHolder.txtProduto = (TextView)view.findViewById(R.id.txtProduto);
        viewHolder.txtGrupo = (TextView)view.findViewById(R.id.txtGrupo);
        viewHolder.txtMedida = (TextView)view.findViewById(R.id.txtMedida);
        viewHolder.txtDescr = (TextView)view.findViewById(R.id.txtDescr);
        viewHolder.edtQtde = (EditText)view.findViewById(R.id.edtQtde);

        view.setTag(viewHolder);

        convertView = view;
    }
    else
    {
        viewHolder = (ViewHolder)convertView.getTag();
        view = convertView;
    }

    final Produtos produtos = getItem(position);

    viewHolder.txtProduto.setText(produtos.getNome());
    viewHolder.txtGrupo.setText(produtos.getGrupo());
    viewHolder.txtDescr.setText(produtos.getDesc());
    viewHolder.txtMedida.setText(produtos.getMedida());
    viewHolder.edtQtde.setText(Integer.toString(produtos.getQuantidade()));

    viewHolder.edtQtde.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        public void onFocusChange(View v, boolean hasFocus) {
            if (!hasFocus) {
                EditText et = (EditText) v.findViewById(R.id.edtQtde);
                //  Toast.makeText(context, "Acho o item" + et.getText(), Toast.LENGTH_SHORT).show();

                try {
                    if (!et.getText().toString().trim().equals("")) {
                        produtos.setQuantidade(Integer.parseInt(String.valueOf(et.getText())));
                    }
                } catch (Exception ex) {
                    Toast.makeText(context, "Erro" + ex.getMessage(), Toast.LENGTH_SHORT).show();

                }
            }
        }
    });

    return view;
}
static class ViewHolder
{
    TextView txtCodigo;
    TextView txtProduto;
    TextView txtGrupo;
    TextView txtMedida;
    TextView txtDescr;
    EditText edtQtde;
}
}
公共类ProdutosArrayAdapter扩展ArrayAdapter{
私有int资源=0;
私人充气机;
私人语境;
公共ProdutosArrayAdapter(上下文,int资源){
超级(上下文、资源);
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
这个资源=资源;
this.context=context;
}
公共视图getView(最终整数位置、视图转换视图、视图组父视图)
{
视图=空;
ViewHolder ViewHolder=null;
if(convertView==null)
{
viewHolder=新的viewHolder();
视图=充气机。充气(资源,父项,false);
viewHolder.txtProduto=(TextView)view.findViewById(R.id.txtProduto);
viewHolder.txtGrupo=(TextView)view.findViewById(R.id.txtGrupo);
viewHolder.txtMedida=(TextView)view.findViewById(R.id.txtMedida);
viewHolder.txtDescr=(TextView)view.findViewById(R.id.txtDescr);
viewHolder.edtQtde=(EditText)view.findViewById(R.id.edtQtde);
view.setTag(viewHolder);
转换视图=视图;
}
其他的
{
viewHolder=(viewHolder)convertView.getTag();
视图=转换视图;
}
最终Produtos Produtos=getItem(位置);
viewHolder.txtProduto.setText(produto.getNome());
viewHolder.txtGrupo.setText(produto.getGrupo());
viewHolder.txtDescr.setText(produtos.getDesc());
viewHolder.txtMedida.setText(produtos.getMedida());
viewHolder.edtQtde.setText(Integer.toString(produtos.getQuantidade());
viewHolder.edtQtde.setOnFocusChangeListener(新视图.OnFocusChangeListener(){
public void onFocusChange(视图v,布尔hasFocus){
如果(!hasFocus){
EditText et=(EditText)v.findViewById(R.id.edtQtde);
//Toast.makeText(上下文,“Acho item”+et.getText(),Toast.LENGTH_SHORT.show();
试一试{
如果(!et.getText().toString().trim()等于(“”){
setQuantidade(Integer.parseInt(String.valueOf(et.getText()));
}
}捕获(例外情况除外){
Toast.makeText(上下文,“Erro”+ex.getMessage(),Toast.LENGTH_SHORT.show();
}
}
}
});
返回视图;
}
静态类视窗夹
{
TextView-txtCodigo;
text视图txtProduto;
TextView-txtGrupo;
TextView-txtMedida;
TextView-txtDescr;
编辑文本;
}
}

当项目发生更改时,我只需要在ListView中保留一个位置。

忽略一个linha RepositorIOPDIOSPRODUTOS=新的RepositorIOPDIOSPRODUTOS(conn);请注意,在以下位置也可以使用葡萄牙语版本的堆栈溢出: