В моем приложении у меня есть два макета, в котором нижний макет какое-то значение будет нулевым на основе сведений пользователя с сервера Я хочу сделать невидимыми, которые являются нулевыми, я использую настраиваемый базовый адаптер для создания и установки значения в текстовое представление вида макета, пожалуйста, помогите в этом вопросе. Я пробовал код Google, который не работает. мой адаптер Calss выглядит следующим образомКак сделать видимым и невидимым расположение пользовательского адаптера на основе значения, установленного в пользовательском adpater
public class SuggestionForumTopicAdapter extends BaseAdapter{
private ArrayList<SuggestionTopicsModel> _suggestionlistData;
private LayoutInflater layoutInflater;
SuggestionTopicsModel suggestion_topics_model;
private Context _context;
RelativeLayout relative_layout;
public SuggestionForumTopicAdapter(Context context,ArrayList<SuggestionTopicsModel> listData){
_suggestionlistData = listData;
_context = context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return _suggestionlistData.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return _suggestionlistData.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (layoutInflater == null)
layoutInflater = (LayoutInflater) _context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.suggestion_custom_dispplay, null);
holder = new ViewHolder();
holder.suggestionPostName = (TextView) convertView.findViewById(R.id.suggestionPostName);
holder.totalnumberofsuggest = (TextView) convertView.findViewById(R.id.totalnumberofsuggest);
holder.dateofcreate = (TextView) convertView.findViewById(R.id.dateofcreate);
holder.winnername=(TextView) convertView.findViewById(R.id.winner_name);
relative_layout=(RelativeLayout) convertView.findViewById(R.id.winner_layout);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
suggestion_topics_model = (SuggestionTopicsModel) _suggestionlistData.get(position);
holder.suggestionPostName.setText(suggestion_topics_model.getSuggestionText());
//Log.i("inside adapter", suggestion_topics_model.getSuggestionText());
holder.totalnumberofsuggest.setText(Integer.toString(suggestion_topics_model.getTopicsSuggestionCount()));
//Log.i("inside adapter", suggestion_topics_model.getSuggestionTopicId());
holder.dateofcreate.setText(suggestion_topics_model.getCreatedDate());
Log.i("id", ""+suggestion_topics_model.getWinner());
//Log.i("inside adapter", suggestion_topics_model.getCreatedDate());
/* if (suggestion_topics_model.getWinner()==position) {
relative_layout.setVisibility(View.GONE);
convertView.setClickable(false);
}*/
if (suggestion_topics_model.getDispplayname()==null) {
Log.i("name", suggestion_topics_model.getDispplayname());
relative_layout.setVisibility(View.GONE);
}else{
holder.winnername.setText(suggestion_topics_model.getDispplayname());
relative_layout.setVisibility(View.VISIBLE);
Log.i("name", suggestion_topics_model.getDispplayname());
}
return convertView;
}
static class ViewHolder{
TextView suggestionPostName;
TextView totalnumberofsuggest;
TextView dateofcreate;
TextView winnername;
}
}
это то же самое результат –
каждый раз, когда он идет внутрь блока else, как этого избежать –
, пожалуйста, попробуйте изменить код. Он будет входить в блок else для каждой строки, кроме первой. Он повторно использует предыдущую строку для отображения следующего, когда он делает это в предыдущем преобразовании в качестве аргумента. Это не проблема. –