我有一个editText和listview可以正常工作。但是我希望在用户开始输入之前使listview不可见。 我查看了这些链接,但它没有用
Show/Hide the Custom ListView in android
Hiding Listview until search is initiated
Hide an android ListView until search string is entered
这是我的代码
public class MapAcWithMarker extends FragmentActivity implements OnMapReadyCallback {
public ListView listView;
private View parentView;
public DataAdapter adapter;
ArrayList<Locations> arrayListTemp=new ArrayList<>();
EditText inputSearch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_recyc);
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
inputSearch = (EditText) findViewById(R.id.inputSearch);
listView = (ListView) findViewById(R.id.listView);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
if(listView.getVisibility() != View.INVISIBLE)
listView.setVisibility(View.INVISIBLE);
}
@Override
public void afterTextChanged(Editable arg0) {
if(listView.getVisibility() != listView.VISIBLE)
listView.setVisibility(listView.VISIBLE);
}
});
答案 0 :(得分:1)
您可以在onCreate中隐藏ListView,而不是隐藏在beforeTextChanged
和onTextChanged
或afterTextChanged
中,您可以取消隐藏它。
答案 1 :(得分:0)
尝试使用
listView.setVisibility(View.GONE);
而不是
listView.setVisibility(View.INVISIBLE);
答案 2 :(得分:0)
1。首先hide
来自{luout ListView
或XML
方法的onCreate()
。
2。从ListView
方法显示onTextChanged()
,因为当用户输入内容时会调用此方法。
试试这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...........
..................
inputSearch = (EditText) findViewById(R.id.inputSearch);
listView = (ListView) findViewById(R.id.listView);
// First hide ListView
listView.setVisibility(View.INVISIBLE);
inputSearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// Show ListView
if(listView.getVisibility() != View.VISIBLE)
listView.setVisibility(View.VISIBLE);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable arg0) {
}
});
}