В настоящее время я создаю это приложение для Android, и одна вещь, которая меня озадачила, - это дескриптор ListView
элементов, которые отображаются в том порядке, в котором они мне нужны, но если один тег имеет пустое значение, которое он показывает как объект singleLine, занимающий только пространство и расстояние между макетом.Как проверить нуль на анализируемых XML-тегах Значение
Все пространство в этом изображения ListView элементов является пустая строка отправляется и я разобрать его. Я бы просто хотел узнать, как лучше справиться с этой ошибкой?
Мой XML для ListView Items:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/ContactTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/White" />
<TextView
android:id="@+id/Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/ContactTitle"
android:layout_below="@+id/ContactTitle"
android:layout_marginRight="17dp"
android:textColor="@color/White" />
<TextView
android:id="@+id/MainPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/Name"
android:layout_below="@+id/Name"
android:textColor="@color/White"/>
<TextView
android:id="@+id/Cell"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/MainPhone"
android:layout_below="@+id/MainPhone"
android:textColor="@color/White" />
<TextView
android:id="@+id/Fax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Cell"
android:layout_below="@+id/Cell"
android:textColor="@color/White" />
<TextView
android:id="@+id/Email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/Fax"
android:layout_below="@+id/Fax"
android:ellipsize="marquee"
android:textColor="@color/EmailColor" />
</RelativeLayout>
Мне нужно проверить на пустой TextViews
и скрыть их. Мой код здесь:
protected void onPostExecute(String result) {
String xml = result;
String KEY_ITEM = "Contact";
String KEY_CONTACTTITLE = "ContactTitle";
String KEY_NAME = "Name";
String KEY_MAINPHONE = "Phone";
String KEY_CELLPHONE = "Cell";
String KEY_FAX = "Fax";
String KEY_EMAIL = "Email";
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
Document doc = getDomElement(xml);
if (xml != null) {
{
NodeList nl = doc.getElementsByTagName(KEY_ITEM);
for (int i = 0; i < nl.getLength(); i++) {
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
if (getValue(e, KEY_CONTACTTITLE) != null) {
map.put(KEY_CONTACTTITLE,
getValue(e, KEY_CONTACTTITLE));
} else {
TextView contactTitle = (TextView) findViewById(R.id.ContactTitle);
}
if (getValue(e, KEY_NAME) != null) {
map.put(KEY_NAME, getValue(e, KEY_NAME));
}
if (getValue(e, KEY_MAINPHONE) != null) {
map.put(KEY_MAINPHONE, getValue(e, KEY_MAINPHONE));
}
if (getValue(e, KEY_CELLPHONE) != null) {
map.put(KEY_CELLPHONE, getValue(e, KEY_CELLPHONE));
}
if (getValue(e, KEY_FAX) != null) {
map.put(KEY_FAX, getValue(e, KEY_FAX));
}
if (getValue(e, KEY_EMAIL) != null) {
map.put(KEY_EMAIL, getValue(e, KEY_EMAIL));
}
menuItems.add(map);
menuItems = simple;
}
String[] hashMapObjects = { KEY_CONTACTTITLE, KEY_NAME,
KEY_MAINPHONE, KEY_CELLPHONE, KEY_FAX, KEY_EMAIL };
int[] listItemObjects = { R.id.ContactTitle, R.id.Name,
R.id.MainPhone, R.id.Cell, R.id.Fax, R.id.Email };
ListAdapter adapter = new SimpleAdapter(
MoveContactsActivity.this, menuItems,
R.layout.listed_contacts, hashMapObjects,
listItemObjects);
setListAdapter(adapter);
Я пытаюсь проверить, если значение равно нулю, чтобы добавить объект в HashMap
. Это, конечно, не работает, и мне интересно, как проверить эти null
TextViews
и скрыть их.
показать мне адаптер пожалуйста –
я использую простой адаптер ...... String [] = {hashMapObjects KEY_CONTACTTITLE, KEY_NAME, \t \t \t \t \t \t \t KEY_MAINPHONE, KEY_CELLPHONE, KEY_FAX, KEY_EMAIL}; \t \t \t \t \t INT [] listItemObjects = {R.id.ContactTitle, R.id.Name, \t \t \t \t \t \t \t R.id.MainPhone, R.id.Cell, R.id.Fax, R.id.Email}; \t \t \t \t \t ListAdapter адаптер = новый SimpleAdapter ( \t \t \t \t \t \t \t MoveContactsActivity.this, MenuItems, \t \t \t \t \t \t \t R.layout.listed_contacts, hashMapObjects, \t \t \t \t \t \t \t listItemObjects); Затем я устанавливаю адаптер. – Keeano
вы не можете использовать простой адаптер, если хотите, чтобы элемент списка отличался от других элементов списка. вы должны использовать создание своего адаптера, а затем функцию 'getView', вы можете проверить нулевые значения и просто не устанавливать их в какой-либо виджет в элемент списка. –