0

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しかし私はそれが可能であるとは思いません

4

3 に答える 3

2

完全に達成したいことはわかりませんが、デフォルトのテキストが入力されたときにリストビューをクリックできないように設定し、ユーザーがテキストを入力したときにそれを元に戻すことはできますか?

元:

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 と override を拡張して、カスタム アダプターを作成します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 に答える