![](/img/trans.png)
[英]Android Spreadsheet data into ArrayList HashMap populate ListView
[英]HashMap in ArrayList viewing on Listview Android
到目前为止,我所有的代码:
我将要显示的字符串放在硬列表列表中。(getDestinationCity和getTotalPrice)但是我在屏幕上只看到getTotalPrice值。 getDestinationCity字段为空。 我猜我只在屏幕上显示Keys(getDestinationCity)之外的Values(getTotalPrice)。
我该如何解决?
public class MainActivity extends AppCompatActivity {
List<HashMap<String, String>> hardlist = new ArrayList<HashMap<String, String>>();
String getTotalPrice = null;
String getDestinationCity = null;
ListView lv;
ListAdapter listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv= (ListView)findViewById(R.id.listView1);
deserilaze();
String[] from = new String[]{getDestinationCity, getTotalPrice};
int[] to = new int[]{R.id.name, R.id.price};
listAdapter = new SimpleAdapter(this, hardlist, R.layout.list_item, from, to);
lv.setAdapter(listAdapter);
}
public void deserilaze(){
Gson gson = new Gson();
AirJson airJson = gson.fromJson(airFullJson, AirJson.class);
for (Itinerary itini : airJson.getResult().getItineraries()) {
// System.out.println("\n");
String getSelectionID = itini.getSelectionId();
getTotalPrice = itini.getPriceInfo().getPriceBreakdown().getTotalPrice().toString();
String getCurrency = itini.getPriceInfo().getCurrency();
// System.out.println("Itinerary: " + "\n" + getSelectionID + "\n" + getTotalPrice + "\t" + getCurrency);
for (Trip tripin : itini.getTrips()) {
getDestinationCity = tripin.getDestinationCity();
String getOriginCity = tripin.getOriginCity();
String getValidatingCarrier = tripin.getValidatingCarrier();
String getDepartureTime = tripin.getDepartureTime();
String getArrivalTime = tripin.getArrivalTime();
// System.out.println("Trip: " + "\n" + getDestinationCity + "\n" + getOriginCity + "\n" + getValidatingCarrier + "\n" +
// getDepartureTime + "\n" + getArrivalTime);
for (Segment segmenti : tripin.getSegments()){
String getSegmentOrigin = segmenti.getDepartureTime();
String getSegmentDestination = segmenti.getArrivalTime();
// System.out.println("Segment: " + "\n" + getSegmentOrigin + "\n" + getSegmentDestination);
}
}
HashMap<String, String> list = new HashMap<String, String>();
list.put(getDestinationCity, getTotalPrice);
hardlist.add(list);
}
}
}
我认为您应该这样做:
//these are the names of the columns
String[] from = new String[]{"DestinationCity", "TotalPrice"};
...
//you associate to the key DestinationCity the value getDestinationCity
list.put("DestinationCity", getDestinationCity);
//you associate to the key TotalPrice the value getTotalPrice
list.put("TotalPrice", getTotalPrice);
因此,您将获得一个映射列表,每个映射都有两个条目(因此具有两个键及其关联值)。
另外,请仔细阅读SimpleAdapter构造函数参数的含义:
建设者
@param context运行与此SimpleAdapter关联的View的上下文
@param data地图列表。 列表中的每个条目对应于列表中的一行。 Maps包含每一行的数据, 并且应包含“ from”中指定的所有条目
@param 资源定义此列表项的视图的视图布局的资源标识符。 布局文件应至少包括在“至”中定义的那些命名视图
@param from列名列表,该列名将添加到与每个项目关联的Map中。
@param to应当在“ from”参数中显示列的视图。 这些都应该是TextViews。 此列表中的前N个视图在from参数中获得了前N列的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.