在Android应用上显示在线服务器文件的内容

时间:2016-04-28 20:07:59

标签: java android json listview fileserver

我目前正在创建一个应用程序,用户可以从不同主题的列表视图中访问学习资料。

在我的数据库表中,从中获取主题名称也有一个列,其中包含我的在线服务器上文件夹的文件路径。每个主题在服务器上都有一个单独的文件夹。

如何添加到我的代码中,以便当用户点击列表中的主题时,其特定文件夹的内容会显示在新活动上?

这是我在简单列表视图时的代码:

 public class FindMaterialActivity extends Activity {

private ListView list;
private ArrayList<String> subjects;
private JSONArray result;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_find_material2);

    list = (ListView) findViewById(R.id.list);

    subjects = new ArrayList<String>();

    getData();

}

private void getData() {
    //Creating a string request
    StringRequest stringRequest = new StringRequest(SubConfig.DATA_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    JSONObject j = null;
                    try {
                        //Parsing the fetched Json String to JSON Object
                        j = new JSONObject(response);

                        //Storing the Array of JSON String to our JSON Array
                        result = j.getJSONArray(SubConfig.JSON_ARRAY);

                        //Calling method getStudents to get the students from the JSON Array
                        getSubjects(result);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            });

    //Creating a request queue
    RequestQueue requestQueue = Volley.newRequestQueue(this);

    //Adding request to the queue
    requestQueue.add(stringRequest);
}

private void getSubjects(JSONArray j) {
    //Traversing through all the items in the json array
    for (int i = 0; i < j.length(); i++) {
        try {
            //Getting json object
            JSONObject json = j.getJSONObject(i);

            //Adding the name of the student to array list
            subjects.add(json.getString(SubConfig.TAG_SUBJECTS));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    //Setting adapter to show the items in the spinner
    list.setAdapter(new ArrayAdapter<String>(FindMaterialActivity.this, android.R.layout.simple_list_item_1, subjects));
}
}

和主题config.java

  public class SubConfig {

    //JSON URL
    public static final String DATA_URL = "http://opuna.co.uk/subject_api/FetchSub.php";

    //Tags used in the JSON String
    public static final String TAG_SUBJECTS = "Subject_Name";
    public static final String TAG_SUB_ID = "Sub_id";


    //JSON array name
    public static final String JSON_ARRAY = "result";
}

1 个答案:

答案 0 :(得分:0)

将主文件夹中的元文件存储在数据库中,就像对主题一样,并在应用程序中使用JSON获取元素,然后将其显示在由您自己制作的自定义布局中。