0

我在ListView我正在制作的应用程序中使用 a ,并ListView在 Activity 启动时使用字符串填充默认消息:

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但我认为这是不可能的

4

3 回答 3

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
}
于 2013-03-07T15:51:32.707 回答
0

我不完全确定你想要什么,但我可以回答这个问题:

有没有一种简单的方法可以使默认字符串不可点击?

通过扩展 ArrayAdapter 并覆盖创建自定义适配器areAllItemsEnabled()

public boolean areAllItemsEnabled() {
    return false;
}

如果您只希望某些行也可点击覆盖isEnabled()

于 2013-03-07T15:52:36.047 回答
0

这会有所帮助

Textview texView=new TextView("No Items To Display");

if(items.isEmpty())
    listview.setHeaderView(textView);
else
    listview.removeHeaderView(textView);
于 2013-03-07T18:12:16.857 回答