Изменить макет списка, если он пуст

Я использую адаптер, чтобы установить макет элемента и заполнить ListView из строки JSON. Иногда этот JSON пуст и в строке нет строк ListView и это полностью пустым.

В этом случае я хочу изменить представление и передать другой макет с надписью "Здесь нет строк".

Итак, это мой код:

MainActivity.java

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView listView = (ListView) findViewById(R.id.listView);
        List list = new LinkedList();

        [...fill list...]

        ListAdapter adapter = new ListAdapter(this, R.layout.list_row_layout, list, R.id.edCod, R.id.edDes);
        listView.setAdapter(adapter);
    }
}

ListAdapter.java

public class ListAdapter extends ArrayAdapter<Adapter> {
    private LayoutInflater layoutInflater;
    private int layout;
    private int textCod;
    private int textDes;

    public FruttaAdapter(Context context, int layout, List<Adapter> objects, int textCod, int textDes) {
        super(context, layout, objects);

        this.layout = layout;
        this.textCod = textCod;
        this.textDes = textDes;
        layoutInflater = LayoutInflater.from(context);
    }

2 ответа

Ты можешь использовать listView.setEmptyView(yourEmptyView),

На самом деле, вы можете использовать ListActivity или ListFragment и использовать его EmptyView (любой вид, который имеет идентификатор android.R.id.empty)

Другие вопросы по тегам