默认ListView

时间:2013-03-07 15:45:56

标签: android listview

我在我正在制作的应用中使用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,但我不认为这是可能的

3 个答案:

答案 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);