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;
}
}
我想創建一個下拉菜單,從JSON文件,該文件是在我的項目的數據。我一直在努力通過soapui來訪問我的遠程服務器,所以我將.json文件複製到資產下的項目中。該代碼不會給我一個錯誤,但我的應用程序不會運行。我認爲問題在於如何打開.json文件或如何訪問對象。創建一個下拉菜單,從以.json文件
預先感謝您。
你是什麼意思,應用程序將無法運行?它是否會因異常而崩潰,或者您的列表沒有填充?如果崩潰,請發佈您的LogCat。 – Rohan
對不起,我的意思是它不會做我想做的事,那就是創建下拉菜單,並用.json文件中的內容填充它。 – che
當我創建一個正常的字符串數組時,它確實創建了下拉菜單,當我按下按鈕。找到它是非常困難的android一般調試.. – che