【问题标题】:change TextView GRAVITY in getView method of CustomListAdapter在 CustomListAdapter 的 getView 方法中更改 TextView GRAVITY
【发布时间】:2015-03-16 10:40:54
【问题描述】:

我有一个带有三个文本视图的 customListAdapter 我想要的是当满足某些条件时,所有三个文本视图的重力都应该反转,如代码中的 cmets 所示。我只发布 customAdapter 而不是剩余代码,因为它是不重要的。

 public class CustomListAdapter extends BaseAdapter {
private ArrayList<NewsItem> listData;
private LayoutInflater layoutInflater;

public CustomListAdapter(Context aContext, ArrayList<NewsItem> listData)     {
    this.listData = listData;
    layoutInflater = LayoutInflater.from(aContext);
}

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

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

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

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.list_row_layout,      null);
        holder = new ViewHolder();
        holder.headlineView = (TextView)    convertView.findViewById(R.id.title);
        holder.reporterNameView = (TextView) convertView.findViewById(R.id.reporter);
        holder.reportedDateView = (TextView) convertView.findViewById(R.id.date);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    if (some condition true){
   // reverse GRAVITY of all TEXTVIEWS
  }
    holder.headlineView.setText(listData.get(position).getHeadline());

    holder.reporterNameView.setText("By, " +      listData.get(position).getReporterName());
    holder.reportedDateView.setText(listData.get(position).getDate());
    return convertView;
}

static class ViewHolder {
    TextView headlineView;
    TextView reporterNameView;
    TextView reportedDateView;
}

}

【问题讨论】:

标签: android listview adapter custom-adapter


【解决方案1】:

你可以这样做

holder.headlineView.setGravity(Gravity.CENTER);
holder.reporterNameView.setGravity(Gravity.CENTER|Gravity.RIGHT);

希望这会有所帮助。!!

【讨论】:

    【解决方案2】:

    在你的条件下设置重力:

    if (some condition true){
    holder.headlineView.setGravity(Gravity.LEFT);
    }
    

    【讨论】:

      【解决方案3】:

      在您的 if 语句中,您可以通过编程方式更改重力:

      if (some condition true){
         // reverse GRAVITY of all TEXTVIEWS
         holder.headlineView.setGravity(Gravity.CENTER | Gravity.BOTTOM);
         holder.reporterNameView.setGravity(Gravity.LEFT| Gravity.TOP);
         holder.reportedDateView.setGravity(Gravity.RIGHT| Gravity.BOTTOM);
      }
      

      【讨论】:

        猜你喜欢
        • 2015-07-12
        • 2013-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多