我在我正在制作的应用中使用ListView
,并且在活动开始时我使用字符串填充ListView
并使用默认消息:
String dMessage = "The list is empty";
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1);
listView.setAdapter(adapter);
adapter.add(dMessage);
是否有一种简单的方法可以使默认字符串无法点击?当用户通过文本输入输入另一个字符串时,该消息将被删除并替换为我想要点击的字符串,因此我不希望整个ListView
不可点击。我希望我可以使用hint
尽可能EditText
,但我不认为这是可能的
答案 0 :(得分:2)
我不确定你想要完全实现什么,但是当输入默认文本然后当用户输入文本还原时,你能否将Listview设置为不可点击?
例如:
adapter.add(dMessage);
listView.setClickable(false);
...
...
//User enters new text
listView.setClickable(true);
修改强>
//As provided by Sam
public boolean areAllItemsEnabled() {
return false;
}
或强>
public boolean isEnabled(int position) {
// return false if default message is active : Boolean or some other check
}
答案 1 :(得分:0)
我不完全确定你想要什么,但我可以回答这个问题:
是否有一种简单的方法可以使默认字符串无法点击?
通过扩展ArrayAdapter并覆盖areAllItemsEnabled()
来创建自定义适配器:
public boolean areAllItemsEnabled() {
return false;
}
如果您只想点击某些行,也可以覆盖isEnabled()
。
答案 2 :(得分:0)
这将有助于
Textview texView=new TextView("No Items To Display");
if(items.isEmpty())
listview.setHeaderView(textView);
else
listview.removeHeaderView(textView);