0

ボタンを押すとクエリが実行され、データが存在するか返されない場合はデータが返されます。このデータはリストビューに送信されます。クエリに結果がある場合、everyting は期待どおりに機能しています。TextViewデータが返されない場合は、が作成され、ユーザーにメッセージが表示されるようにする句があります。

ボタンを押してクエリを実行しても、データが返されないとします。私のメッセージは期待どおりにユーザーに表示されます。次に、データを返すクエリを実行すると、メッセージが消え、リストビューが期待どおりに読み込まれます。ここで、データのない最初のクエリ (メッセージがユーザーに表示される) の後、データを返さない別のクエリを実行したとします。メッセージが表示されます (おそらく、前のメッセージの「上」に表示されます)。データを使用してクエリを実行すると、リストビューにデータが入力されますが、メッセージはまだ存在します。

なぜこれが起こっているのか、結果を含むクエリの後、以前の結果メッセージがすべて消えてリストビューが「単独」になるようにするにはどうすればよいか、誰かが説明できますか?

これは私のコードです:

searchButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            //GETS THE DATA

            ListView listContent = (ListView) findViewById(android.R.id.list);
            MySimpleAdapt arrayListAdapter = new MySimpleAdapt(Search.this, allData);
            listContent.setAdapter(arrayListAdapter);

            if (allData.size() == 0) {
                TextView emptyView = new TextView(getApplicationContext());
                emptyView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                emptyView.setTextColor(Color.BLACK);
                emptyView.setText(R.string.notFound);
                emptyView.setPadding(4, 30, 4, 30);
                emptyView.setTextSize(30);
                emptyView.setVisibility(View.GONE);
                emptyView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

                if (getListView().getParent() != null) {
                    ((ViewGroup) getListView().getParent()).addView(emptyView);
                }
                getListView().setEmptyView(emptyView);
            }
        }
    });
4

2 に答える 2