【发布时间】:2017-09-21 16:34:48
【问题描述】:
SearchAdapter.java
public class SearchFeedAdapter extends ArrayAdapter<String> {
public int layout;
public class ViewHolder2 {
TextView pf_businessTitle;
TextView pf_addressDistance;
TextView pf_businessAddress;
TextView pf_businessLocation;
TextView pf_businessState;
TextView pf_businessZipCode;
}
// MyEvents myEvents;
public SearchFeedAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
layout=resource;
}
Context mContext;
@Override
public View getView(final int position, View convertView, final ViewGroup parent){
SearchFeedAdapter.ViewHolder2 mainViewHolder=null;
mContext = parent.getContext();
LayoutInflater inflater=LayoutInflater.from(getContext());
convertView= inflater.inflate(layout,parent,false );
final SearchFeedAdapter.ViewHolder2 viewHolder=new SearchFeedAdapter.ViewHolder2();
viewHolder.pf_businessTitle =(TextView)convertView.findViewById(R.id.pf_businessTitle);
viewHolder.pf_addressDistance =(TextView)convertView.findViewById(R.id.pf_addressDistance);
viewHolder.pf_businessAddress=(TextView)convertView.findViewById(R.id.pf_businessAddress);
viewHolder.pf_businessLocation=(TextView)convertView.findViewById(R.id.pf_businessLocation);
viewHolder.pf_businessState=(TextView)convertView.findViewById(R.id.pf_businessState);
viewHolder.pf_businessZipCode=(TextView)convertView.findViewById(R.id.pf_businessZipCode);
convertView.setTag(viewHolder);
viewHolder.pf_businessTitle.setText(getItem(position));
mainViewHolder=(SearchFeedAdapter.ViewHolder2)convertView.getTag();
// mainViewHolder.pf_businessTitle.setText(getItem(position));
// String distance;
// mainViewHolder.pf_addressDistance.setText(getItem(position));
return convertView;
}
}
SearchActivity.java
public class SearchFeedActivity extends AppCompatActivity{
JSONObject jsonObject=new JSONObject();
public static ArrayList<String> BusinessTitle = new ArrayList<String>();
public static ArrayList<String> Distance = new ArrayList<String>();
public static ArrayList<String> Address = new ArrayList<String>();
public static ArrayList<String> Location=new ArrayList <String> ();
public static ArrayList<String> State=new ArrayList<String>();
public static ArrayList<String> ZipCode=new ArrayList<String>();
public static ArrayAdapter<String> pfAdapter1;
public static ArrayAdapter<String> pfAdapter2;
public static ArrayAdapter<String> pfAdapter3;
public static ArrayAdapter<String> pfAdapter4;
public static ArrayAdapter<String> pfAdapter5;
public static ArrayAdapter<String> pfAdapter6;
ListView show;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search_results);
show= (ListView) findViewById(R.id.lv_pf);
pfAdapter1 = new SearchFeedAdapter(SearchFeedActivity.this, R.layout.searchfeed_adapter,BusinessTitle);
showData(pfAdapter1);
}
public void showData(ArrayAdapter<String> adapter){
adapter.notifyDataSetChanged();
show.setAdapter(adapter);
}
}
我想将这些文本视图放在两行中。我想将该数据放在两个不同的行中并保持更新。我不关心这个 ArrayAdapter 如果您有任何替代品,请告诉我完成该任务的替代品。
【问题讨论】:
-
要在 ListView 中托管更复杂的视图,您需要创建一个自定义适配器。自定义适配器将
extendArrayAdapter,但添加了完全按照您的需要显示视图的功能。这是一个很好的教程:ezzylearning.com/tutorial/…
标签: android android-layout listview android-studio android-fragments