2016-06-03 13 views
-2

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 ...

+0

bitte erarbeiten –

+0

Diese – TheNobleSix

+0

besser sein sollte 'String resID' ersetzen statt' Textview resID' –

Antwort

0

Sie mögen versuchen,

TextView txtView = (TextView) view.findViewById(R.id.tvResID); 
String str = txtView.getText().toString(); 
Log.i("TAG", "Text is : " + str); 

Dies sollte funktionieren.

EDIT 1

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tvResID" 
    android:layout_marginRight="10dp" 
    android:textStyle="bold" 
    android:text="hello world!!!" 
    android:textColor="#000000"/> 

Danach werden Sie

Hallo Welt erhalten !!!

+0

Die Zeichenfolge ist leer ... – TheNobleSix

+0

überprüfen tvResID enthält eine Zeichenfolge oder leer TextView? –

+0

Finden Sie was ist Text auf TVResID? –

0

diesen Code Versuchen:

String text = (String) mListView.getItemAtPosition(position);