2016-04-11 19 views
-1

私がこれまで行ってきたすべてのチュートリアルでは、CustomAdapterのgetView()内でLayoutInflatorを使用するようにしました。ListView - LayoutInflatorを使用しないカスタムアダプタ

LayoutInflatorが私のために起動せず、LayoutInflatorCompatまたはLayoutFactoryのオプションしか取得できません。

私が作成したユーザーオブジェクトからデータを取り出し、それをrowlayout.xmlの適切な2つのテキストフィールドに設定するのに役立つ人はいますか?

これは、私のUserAdapter内のgetView()メソッド内で実行する必要があると仮定しています。

ユーザーには2つの文字列、名前、および説明のみがあります。私のrowlayoutにはtv_name、tv_descriptionがあります。

public class UserAdapter extends BaseAdapter { 


ArrayList<user> list; 
Context context; 

public UserAdapter(Context c,ArrayList<user> list) 
{ 
    context = c; 
    this.list = list; 

} 

@Override 
public int getCount() { 
    return list.size(); 
} 

@Override 
public Object getItem(int position) { 
    return list.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    return null; 
} 

} 
+0

それはあなたのために現れない? – Pooya

+0

これは変数としてのオプションではありません。たぶん私はコンピュータをリセットし、それが現れるかどうかを見るでしょう:/ – NewToAnroid

+0

add import android.view.LayoutInflater;それが役立つかどうかを確認してください – Pooya

答えて

0

LayoutInflaterとあなたのContextを使用してconvertViewに目的のレイアウトを膨らませると、あなたがTextView Sを取得し、テキストを設定することを使用することができ、このような何か:あなたは何を意味しています

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if(convertView == null) { 
      convertView = LayoutInflater.from(context).inflate(R.layout.your_layout, parent, false); 
      TextView tvName = (TextView) convertView.findViewById(R.id.tv_name); 
      TextView tvDescription = (TextView) convertView.findViewById(R.id.tv_description); 

      User user = users.get(position); 
      tvName.setText(user.getName()); 
      tvDescription.setText(user.getDescription()); 
     } 
     return convertView; 
    } 
関連する問題