2013-03-07 3 views
0

Я использую 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, но я не думаю, что это возможно

ответ

2

Я не уверен, что вы хотите выполнить полностью, но можете ли вы установить Listview, чтобы он не был доступен для клика, когда текст по умолчанию введенный тогда, когда пользователь вводит текст, верните его?

Ex:

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 
} 
+0

Это именно то, что я хочу, однако этот код не работает, строка по умолчанию по-прежнему заблокированы. Я думаю, мне нужно реализовать 'setClickable (false);' для 'адаптера', но у него нет метода для этого –

+0

вы также пытались также установить listView.setFocusable (False) в то же время? – Brianjs

+0

У меня есть да, тот же результат –

0

Я не совсем уверен, что вы хотите, но я могу ответить на этот вопрос :

Есть ли простой способ сделать так, чтобы строка по умолчанию не была нажата?

Создание пользовательского адаптера путем расширения ArrayAdapter и переопределить areAllItemsEnabled():

public boolean areAllItemsEnabled() { 
    return false; 
} 

Если вы хотите только определенные строки, чтобы быть интерактивным переопределением isEnabled() а.

0

это поможет

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

if(items.isEmpty()) 
    listview.setHeaderView(textView); 
else 
    listview.removeHeaderView(textView); 
+0

Ответы только на код с помощью «Попробуйте это» недоверчивы к переполнению стека. Пожалуйста, разверните свой ответ. – nalply

Смежные вопросы