我有一个自定义类飞行和内部类的票价访问通过将InnerClass在OuterClass对象的对象
public class Flight {
private String airlineCode;
private String airlineClass;
private String originCode;
private String destinationCode;
private String departureTime;
private String ArrivalTime;
public Flight (String originCode,String destinationCode,String departureTime,String arrivalTime,
String airlineCode, String airlineClass){
this.originCode=originCode;
this.destinationCode=destinationCode;
this.departureTime=departureTime;
this.ArrivalTime=arrivalTime;
this.airlineCode=airlineCode;
this.airlineClass=airlineClass;
}
public String getAirlineCode() {
return airlineCode;
}
public void setAirlineCode(String airlineCode) {
this.airlineCode = airlineCode;
}
public String getAirlineClass() {
return airlineClass;
}
public void setAirlineClass(String airlineClass) {
this.airlineClass = airlineClass;
}
public String getOriginCode() {
return originCode;
}
public void setOriginCode(String originCode) {
this.originCode = originCode;
}
public String getDestinationCode() {
return destinationCode;
}
public void setDestinationCode(String destinationCode) {
this.destinationCode = destinationCode;
}
public String getDepartureTime() {
return departureTime;
}
public void setDepartureTime(String departureTime) {
this.departureTime = departureTime;
}
public String getArrivalTime() {
return ArrivalTime;
}
public void setArrivalTime(String arrivalTime) {
ArrivalTime = arrivalTime;
}
//Inner Class
class Fare{
private String providerId;
private String fare;
public Fare(String providerId,String fare){
this.providerId=providerId;
this.fare=fare;
}
public String getProviderId() {
return providerId;
}
public String getFare() {
return fare;
}
}
}
我有我必须遍历并把值的自定义类中的样本JSON。以下是JSON的简短示例。
{
"flights": [
{
"originCode": "DEL",
"destinationCode": "BOM",
"departureTime": 1396614600000,
"arrivalTime": 1396625400000,
"fares": [
{
"providerId": 1,
"fare": 11500
},
{
"providerId": 2,
"fare": 10500
}
],
"airlineCode": "G8",
"class": "Business"
},
{
"originCode": "DEL",
"destinationCode": "BOM",
"departureTime": 1396616400000,
"arrivalTime": 1396623600000,
"fares": [
{
"providerId": 1,
"fare": 14400
},
{
"providerId": 3,
"fare": 14000
}
],
"airlineCode": "AI",
"class": "Business"
}
]
}
我解析和创建的ArrayList这样
public static final ArrayList<Flight> extractdata(String jsonResponse) {
ArrayList<Flight> flights = new ArrayList<Flight>();
try {
JSONObject rootobject = new JSONObject(jsonResponse);
JSONArray flight = rootobject.getJSONArray("flights");
for (int i = 0; i < flight.length(); i++) {
JSONObject arrayObject = flight.getJSONObject(i);
String originCode = arrayObject.getString("originCode");
Log.d(LOG_TAG,"originalcode"+ originCode);
String destinationCode = arrayObject.getString("destinationCode");
Log.d(LOG_TAG,"destinationcode"+ destinationCode);
String departureTime = arrayObject.getString("departureTime");
Log.d(LOG_TAG,"departuretime"+ departureTime);
String arrivalTime = arrayObject.getString("arrivalTime");
Log.d(LOG_TAG,"arrivaltime"+ arrivalTime);
String airlineCode = arrayObject.getString("airlineCode");
Log.d(LOG_TAG,"airlinecode"+ airlineCode);
String airlineClass = arrayObject.getString("class");
Log.d(LOG_TAG,"class"+ airlineClass);
Long eTime = Long.parseLong(arrivalTime);
Date dateObject = new Date(eTime);
Long dTime = Long.parseLong(departureTime);
Date dateObject2 = new Date(dTime);
SimpleDateFormat dateFormat = new SimpleDateFormat("HH mm ");
String arrival = dateFormat.format(dateObject);
String depart = dateFormat.format(dateObject2);
JSONArray arrayFare=arrayObject.getJSONArray("fares");
String providerId;
String fare;
int number=arrayFare.length();
Flight flightObject=new Flight(originCode,destinationCode,depart,arrival,airlineCode,airlineClass);
for (int j=0;j<arrayFare.length();j++){
JSONObject arrayFareObject=arrayFare.getJSONObject(j);
providerId=arrayFareObject.getString("providerId");
fare=arrayFareObject.getString("fare");
Log.d(LOG_TAG,"providerId & fare :"+providerId+" "+fare);
Flight.Fare fareObject[]= new Flight.Fare[number];
fareObject[j]=flightObject.new Fare(providerId,fare);
}
flights.add(flightObject);
}
} catch (JSONException e) {
Log.e(LOG_TAG, "problem parsing jsone", e);
}
return flights;
}
现在我需要访问被点击了哪个航班的对象对象将InnerClass。我怎么做。我无法访问这些对象。
我想这样。
public void updateUi(final ArrayList<Flight> flights1)
{
final FlightAdapter flightAdapter=new FlightAdapter(this,flights1);
ListView flightlistview=(ListView)findViewById(R.id.list);
flightlistview.setAdapter(flightAdapter);
flightlistview.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
Flight flight=flightAdapter.getItem(position);
Intent fareintent=new Intent(FlightSearchActivity.this,FareActivity.class);
startActivity(fareintent);
}
});
}
您需要'Fare'的对象作为'Flight'类的属性。使用数据获取并设置此属性。 –
@PrerakSola如果你可以举一个例子来澄清我的疑问,这将有很大的帮助。提前致谢。 –