オブジェクトを通じて私は私がそのカスタムクラス内の値を横断して配置する必要がありますサンプルJSONを持っている運賃アクセス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の短いサンプルです。
{
"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"
}
]
}
私は今、私はフライトのオブジェクトがクリックされた方のためにInnerClassオブジェクトにアクセスする必要がある。この
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;
}
のようにArrayListのを解析して作成しています。それ、どうやったら出来るの。私はそれらのオブジェクトにアクセスすることができません。
私はこのようにしています。
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);
}
});
}
'Flight'クラスのプロパティとして' Fare'オブジェクトが必要です。データでこのプロパティを取得および設定します。 –
@PrerakSola疑念を取り除くための例を挙げることができれば、それは多くの助けになります。前もって感謝します。 –