ボタンを押すとクエリが実行され、データが存在するか返されない場合はデータが返されます。このデータはリストビューに送信されます。クエリに結果がある場合、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);
}
}
});