0

返されるデータにいくつかの条件を適用するために拡張されたArrayAdapterを使用してListActivityのListViewにデータを入力しています。いくつかの理由でアダプターが空のセットを返す可能性があります。これらの条件はユーザーが設定するため、android:emptyビューでsetText()を使用して情報をフィードバックしたいと思います。ListActivity(setListAdapterの前後の両方)で試しました

        TextView t = new TextView(this);
        t.setText("HEY!");
        getListView().setEmptyView(t);

そしてまた

        getListView().getEmptyView().setVisibility(View.GONE);
        TextView t = new TextView(this);
        t.setText("HEY!");
        ((ViewGroup)getListView().getParent()).addView(t);
        getListView().setEmptyView(t);

しかし、私はレイアウトandroid:emptyに設定されたメッセージしか取得しません。

ありがとう!

4

3 に答える 3

8

これが出てこなかったのには驚きましたが、まだ答えられていません…とても便利だと思います。答えを見つけるために多くの掘り下げをしませんでした:

    MyAdapter mAdapter = new MyAdapter(this, R.layout.file_row, data);      
    setListAdapter(mAdapter);
    ListView listView = (ListView)findViewById(android.R.id.list);
    if (mShowOnlySomeSubset) {
        listView.setEmptyView(findViewById(R.id.emptySubset));
    } else if (mShowOnlySomeOtherSubset) {
        listView.setEmptyView(findViewById(R.id.emptyOtherSubset));
    } else {
        listView.setEmptyView(findViewById(android.R.id.empty));            
    }

R.id.emptySubsetおよびR.id.emptyOtherSubsetは、android:listおよびandroid:empty要素と同じレイアウト.xmlファイルで定義されたTextViewのIDです。

簡単ピーシー:)

于 2011-04-18T17:38:37.817 に答える
3

あなたはこれを試すかもしれません:

http://www.littlefluffytoys.com/?p=74

基本的に、使用する前に必ずemptyViewをビュー階層に追加する必要があると言われています。

TextView emptyView = new TextView(context);
emptyView.setLayoutParams(
  new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
emptyView.setText(“This appears when the list is empty”);
emptyView.setVisibility(View.GONE);
((ViewGroup)list.getParent()).addView(emptyView);
list.setEmptyView(emptyView);
于 2011-04-16T02:51:59.097 に答える
2

あなたはこのわずかに異なるアプローチを取ることができます:http ://wiresareobsolete.com/wordpress/2010/08/adapting-to-empty-views/

于 2011-04-16T02:51:08.950 に答える