2017-02-26 21 views
-2

テキストを表示するために、arrayAdapter内のテキストを取得できません。リストはエミュレータに色などで表示されますが、テキストは表示されません。実行するとエラーが発生せず、ArrayAdapterにあるLog.i()が期待した内容を印刷しますテキスト。ArrayAdapterにテキストが表示されないのはなぜですか? (Android)

public class ListingArrayAdapter extends ArrayAdapter<ParseObject> { 
    final String TAG = "ListingArrayAdapter"; 

    public ListingArrayAdapter(Context context, ArrayList<ParseObject> listings){ 
     super(context,0,listings); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     if(convertView == null) { 
      convertView = LayoutInflater.from(getContext()) 
        .inflate(R.layout.listing_item, parent, false); 
      final ViewHolder holder = new ViewHolder(); 
      holder.body = (TextView) convertView.findViewById(R.id.tvBody); 
      holder.title = (TextView) convertView.findViewById(R.id.tvTitle); 
      convertView.setTag(holder); 
     } 

     final ParseObject listing = getItem(position); 
     final ViewHolder holder = (ViewHolder)convertView.getTag(); 

     holder.body.setText(listing.getString("desc")); 
     holder.title.setText(listing.getString("title")); 

     Log.i(TAG, "info set" + listing.getString("title")); 
     //Logs the title correctly so, the getString() does return text 
     return convertView; 
    } 


    final class ViewHolder { 
     public TextView title; 
     public TextView body; 
    } 

} 

レイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:weightSum="1"> 

    <TextView 
     android:id="@+id/tvTitle" 
     android:padding="20dp" 
     android:lines="1" 
     android:layout_width="match_parent" 
     android:background="@color/colorAccent" 
     android:layout_height="wrap_content"> 
    </TextView> 

    <TextView 
     android:id="@+id/tvBody" 
     android:padding="20dp" 
     android:lines="2" 
     android:layout_width="match_parent" 
     android:layout_height="64dp" 
     android:background="?android:attr/detailsElementBackground"> 
    </TextView> 

</LinearLayout> 

ここで画面出力です: enter image description here

+0

ところで、Parse UIライブラリが役立つかもしれません。しかし、Logステートメントでデータが表示されている場合は、表示されていないコードで何か問題があります。 –

+0

任意のアイデアよりも何ができるのでしょうか?私はちょうど提供されたコード以外の 'バックエンド'解析のものを持っています。私はおそらくParseUIを使用しないので、実際にはパースのドキュメントが好きではありません –

+0

あなたが見ているもののスクリーンショットを追加できますか? –

答えて

1

データがログに記録されている場合、あなたには、いくつかのレイアウトの問題を持っています。

提案:

  1. あなたは、アダプタに追加した後は、notifyDataSetChanged()を呼び出していることを確認してください。

  2. あなたは2つのビューを持っていますが、android:weightSum="1"ですので、削除してみてください。

  3. テキストの色が背景と同じに設定されている可能性があります。色を削除します。

+1

重量は私の問題でした –

関連する問題