3

私は2つのアクティビティを持つアプリケーションを持っています。メイン アクティビティでボタンを押すと、カスタマイズされたリストビューが表示されます。その後、ハード バック ボタンを押して、アプリケーションのメイン ページに移動します。

次に、もう一度同じボタンを押してリストビューに移動すると、リストビューに繰り返される値が表示されます。

どなたか解決策を教えてください。

        CookList = new ArrayList<HashMap<String, String>>();
    try {
        url = new URI(cookUri);
        List<DataModels> list1 = new ArrayList<DataModels>();
        CookListServer cookServer = new CookListServer();
        StringBuilder responseString =  cookServer.CookConnect(url, "hi");
        System.out.println("responseString---------"+responseString);

        for(int i=0; i< itemId.size(); i++){
            HashMap<String, String> Cook = new HashMap<String, String>();

            Cook.put("ItemId", itemId.get(i));
            System.out.println("itemId--------"+itemId.get(i));
            Cook.put("ItemName", itemName.get(i));
            Cook.put("ItemQty", itemQty.get(i));
            CookList.add(Cook);
            list1.add(get(i));
        }
        adapter = new MySimpleArrayAdapter(context, CookList, R.layout.cooklist_item, list1);
        setListAdapter(adapter);

    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 }

private DataModels get(int s) {
    return new DataModels(s);
}

@Override
public void onResume() {
    super.onResume();
    adapter.notifyDataSetChanged();
}

@Override
protected void onDestroy() {
    super.onDestroy();
}



// Adapter to list the Albums
public class MySimpleArrayAdapter extends ArrayAdapter<HashMap<String, String>> implements SectionIndexer {
    private final Context context;
    private final ArrayList<HashMap<String, String>> values;
    List<DataModels> modellist;

    public MySimpleArrayAdapter(Context context, ArrayList<HashMap<String, String>> values, int layout, List<DataModels> modellist) {
        super(context, R.layout.cooklist_item, values);
        this.context = context;
        this.values = values;
        this.modellist = modellist;
    }

    private final class ViewHolder {
        public TextView Nametext;
        public TextView Qntytext;
        public Button prepareButton;
    }

    private LayoutInflater mLayoutInflater = null;
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        final ViewHolder viewHolder;
        if (convertView == null) {
            if (mLayoutInflater == null) {
                mLayoutInflater = LayoutInflater.from(context);
            }

            convertView = mLayoutInflater.inflate(R.layout.cooklist_item, null);

            viewHolder = new ViewHolder();
            viewHolder.Nametext = (TextView) convertView.findViewById(R.id.label);
            viewHolder.Qntytext = (TextView) convertView.findViewById(R.id.textView1);
            viewHolder.prepareButton = (Button) convertView.findViewById(R.id.prepareButton1);

            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
            ((ViewHolder) convertView.getTag()).prepareButton.setTag(modellist.get(position));
        }

        final HashMap<String, String> cooklist = values.get(position);
        final ViewHolder holder = (ViewHolder) convertView.getTag();

        final String ItemId = cooklist.get("ItemId");
        final String ItemName = cooklist.get("ItemName");
        final String ItemQty = cooklist.get("ItemQty");

        System.out.println("ItemId---------"+ItemId);
        System.out.println("ItemName---------"+ItemName);
        System.out.println("ItemQty---------"+ItemQty);

        holder.Nametext.setText(ItemName);

        holder.Qntytext.setText(ItemQty);

        registerForContextMenu(convertView);


        holder.prepareButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                DataModels element = (DataModels) viewHolder.prepareButton.getTag();
                holder.prepareButton.setEnabled(false);
            }
        });
        return convertView;
    }

    @Override
    public int getPositionForSection(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public int getSectionForPosition(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Object[] getSections() {
        // TODO Auto-generated method stub
        return null;
    }


}

ありがとう...

4

1 に答える 1

0

私は解決策を得ました

@Override
protected void onDestroy() {
    itemId.clear();
    itemName.clear();
    itemQty.clear();
    super.onDestroy();
}

ありがとう....

于 2012-10-12T04:33:01.930 に答える