Ich fange an, Ihnen den Code zu zeigen.GetText() auf einem TextView gibt eine leere Zeichenfolge
lv = (ListView) findViewById(android.R.id.list);
//Updating parsed JSON data into ListView
ListAdapter adapter = new SimpleAdapter(
this, locationsList,
R.layout.list_results, new String[]{
TAG_NATION, TAG_CITY, TAG_NAME, TAG_TYPE, TAG_PRICERANGE, TAG_ID, TAG_IMAGE},
new int[]{R.id.tvResNation, R.id.tvResCity, R.id.tvResName, R.id.tvResType, R.id.tvResPrice, R.id.tvResID,
R.id.ivResImage1});
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent in = new Intent(ResultsActivity.this, LocationActivity.class);
String resID = ((TextView) view.findViewById(R.id.tvResID)).getText().toString();
String resName = ((TextView) view.findViewById(R.id.tvResName)).getText().toString();
String resNation = ((TextView) view.findViewById(R.id.tvResNation)).getText().toString();
String resCity = ((TextView) view.findViewById(R.id.tvResCity)).getText().toString();
String resType = ((TextView) view.findViewById(R.id.tvResType)).getText().toString();
in.putExtra(TAG_ID, resID);
in.putExtra(TAG_NAME, resName);
in.putExtra(TAG_TYPE, resType);
in.putExtra(TAG_NATION, resNation);
in.putExtra(TAG_CITY, resCity);
startActivity(in);
}
});
alle Eigenschaften, die wir auf dem Adapter festgelegt werden durch eine JSONObject abgerufen, die wir zu einem hashmap umwandeln (wir überprüft haben, dass alle Eigenschaften den richtigen Wert haben).
Sobald die Eigenschaften (?) Auf dem Adapter mit dieser hashmap gesetzt sind, ist die Eigenschaft resID
anscheinend nicht. Von der textView
mit der ID R.id.tvResID
erhalten wir immer eine leere Zeichenfolge mit getText()
.
Das Komische ist, dass alle Eigenschaften haben einen Wert vor der Einstellung des Adapters und alle anderen Eigenschaften, außer ID, sind im Inneren des Zuhörers abgerufen ...
Hier ist der XML für den Adapter
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.66">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResNation"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResCity"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResName"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResType"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResPrice"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ivResImage1"
android:layout_weight="0.33" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvResID"
android:layout_marginRight="10dp"
android:textStyle="bold"
android:textColor="#000000"/>
</LinearLayout>
GELÖST Wir haben den Adapter in einen anderen Teil des Codes gesetzt und es gab ein Feld fehlt ...
bitte erarbeiten –
Diese – TheNobleSix
besser sein sollte 'String resID' ersetzen statt' Textview resID' –