2016-06-21 9 views
0

レストラン用のPOSアプリケーションを開発しています。物事はうまくいきます。ただし、しばらくするとアプリが非常に遅くなってしまうことを除いては問題ありません。応答は2秒遅れているように見え、アプリケーションを再起動する必要があります。ここ は、それがどのように見えるかです:例えば冷たい飲み物、Android:いくつかの操作の後にアプリの応答が遅くなる

enter image description here

食品カテゴリが選択されるたびに、私はそれ以下の以前の食品を削除し、選択したカテゴリに応じて新しいアイテムを追加します。

私には、パネル(GridLayout)から頻繁にビューを追加したり削除したりすると、アプリケーションの速度が遅くなり、遅くなるようです。

すべてのビューを削除するには、単にを実行します。

誰でもこの問題を解決する方法を教えてもらえますか?

+0

GridLayoutには、ダイナミックグリッド/リストについては悪い選択である...なぜあなたは使用していないRecyclerView /リストビュー? – Selvin

+0

グリッドにデータを入力するたびに、古いアイテムを削除せずに表示する新しいアイテムのリストを追加するたびに、私のように聞こえます。そして、新しい項目を追加し続けると、リストが大変大きくなり、メモリが足りなくなります。 – NoChinDeluxe

+0

@Selvin yea ..それは私がいくつかのリサイクルビューでgridLayoutを置き換えて、それを試してみなければならないようだ。 – usman

答えて

0

ビューを削除していますが、削除する必要はありません。そのため、ビューはメモリリソースを占有し続けます。

ListViewやRecyclerViewのようなアダプタで何らかのリストを使用する方が良いでしょう。ビューを追加したり削除したりすることができます。表示するとメモリを占有します。

あなたが何かを行うことができます。

ArrayList<String> listItems = new ArrayList<>();   

     listaItems.add(yourString); // call that ever you have to add new itens 

    ArrayAdapter<String> itemsAdapter = 
      new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listItems); 

    ListView listView = (ListView) findViewById(R.id.listView); 
    listView.setAdapter(itemsAdapter); 

のような何かを削除するには:

listaItems.remove([INDEX]); 
itemsAdapter.notifyDataSetChanged(); 
+0

listViewを使用してビューをグリッドレイアウトとして表示できますか? – usman

+0

もちろん、内部に任意のレイアウトのカスタムアダプタを作成し、内部にテキストビューを設定することができます –

関連する問題