10

リストの各項目に対して呼び出されると思いgetView()ますが、私の質問は、その行に関連付けられたデータが null の場合、その行を表示できないかということです。内だけでやりたいgetView ()

例えば:

リストビューに名前を表示する人のアラートがnullの場合、その人の名前をリストビューに表示したくありません。

4

2 に答える 2

25

ビューを返す前に、最後の行でその行の可視性を「gone」に設定できます。これでうまくいくはずです。

編集:コンテンツがnullでない場合は、必ず可視性を表示に設定してください。そうしないと、ListViewがビューを再利用するため、すべてのビューが「なくなり」ます。

myView.setVisibility((myData == null) ? View.GONE : View.VISIBLE);
于 2012-06-17T11:12:52.713 に答える
1

こんにちは仲間 可視性を非表示に設定しようとしましたが、それでもリストビューに空の行が表示されるので、少し変更し、必要に応じて機能したので、誰かが私のような同様の結果を必要とする場合は共有する価値があります.

リストをソースとして使用し ています。私の要件はいくつかのアプリケーションをスキップすることでした。そのため、そのアプリケーションをリストから削除し、データセットの変更を通知しました。

public AppListAdapter(Context context, List<ApplicationInfo> appList) {
        this.context = context;
        this.appList = appList;
        inflater = LayoutInflater.from(context);
        localStorage = new LocalStorage(context);
        pm = context.getPackageManager();
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null)
              convertView = inflater.inflate(R.layout.applist_item, parent, false);
            // Other lines of code
        if(appName.length()==0 || getItem(position).packageName.equals("package.name.to.skip")) {
              appList.remove(position);
              notifyDataSetChanged();
        }
    return convertView;
}

懸念事項

appList.remove(位置);
notifyDataSetChanged();

あなたの提案と修正はいつでも大歓迎です。
アズマットフンザイ

于 2016-07-30T21:43:22.857 に答える