package com.example.root.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import org.json.JSONArray;
import org.json.JSONException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
Button btnCommercial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView list11 = (ListView) findViewById(R.id.listView1);
ArrayList<String> authorities = getAuthorities("AuthorityList.json");
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, authorities);
btnCommercial = (Button) findViewById(R.id.btnCommercial);
btnCommercial.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
list11.setAdapter(adapter);
}
});
}
private ArrayList<String> getAuthorities(String fileName) {
JSONArray jsonArray = null;
ArrayList<String> AuthList = new ArrayList<String>();
try {
InputStream inputStream = getAssets().open(fileName); //open the inputStream to the file
int size = inputStream.available(); //size of the entire json object
byte[] data = new byte[size]; //array that will store all the data
inputStream.read(data); //reading data into the array for the file
inputStream.close(); //close the input steam
String json = new String(data, "UTF-8");
jsonArray = new JSONArray(json);
if (jsonArray != null) {
for (int i = 0; i < jsonArray.length(); i++) {
AuthList.add(jsonArray.getJSONObject(i).getString("description"));
}
}
} catch (IOException e) {
e.printStackTrace(); return null;
} catch (JSONException je) {
je.printStackTrace(); return null;
}
return AuthList;
}
}
Voglio creare un menu a discesa con i dati da un file JSON che è nel mio progetto. Stavo cercando di accedere al mio server remoto tramite soapui, quindi ho copiato il file .json nel mio progetto sotto asset. Il codice non mi dà un errore, ma la mia app non verrà eseguita. Penso che il problema sia come sto aprendo il file .json o come accedo agli oggetti.Creazione di un menu a discesa da un file .json
Grazie in anticipo.
Cosa vuoi dire, applicazione non funzionerà? Crolla con un'eccezione o la tua lista non è popolata? Se si blocca, pubblica il tuo LogCat. – Rohan
Mi spiace, intendo dire che non farò ciò che voglio, cioè creare il menu a tendina e riempirlo con i contenuti del file .json. – che
Quando creo un array di stringhe normale, crea il menu a discesa quando preme il pulsante. Trovando molto difficile eseguire il debug in Android in generale .. – che