Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算JSON数组中的元素数,并在Textview-Android上显示结果_Android_Arrays_Json_Parsing - Fatal编程技术网

计算JSON数组中的元素数,并在Textview-Android上显示结果

计算JSON数组中的元素数,并在Textview-Android上显示结果,android,arrays,json,parsing,Android,Arrays,Json,Parsing,我想计算通过JSON数组获得的元素数,并使用.settext()方法在TextView上显示它。 我得到了以下JSON数组: { "result": [ { "id":"283", "fullname":"shyam", "contactno":"898888888", "collegename":"mjc", "emailaddress":"shyamzawar",

我想计算通过JSON数组获得的元素数,并使用.settext()方法在TextView上显示它。 我得到了以下JSON数组:

{ "result": [ { "id":"283", "fullname":"shyam", "contactno":"898888888", "collegename":"mjc", "emailaddress":"shyamzawar", "eventname":"gaming" }, { "id":"285", "fullname":"ffca", "contactno":"8888888888", "collegename":"Brihan maharashtra College of Commerce (BMCC)", "emailaddress":"shyamzawar@ymail.com", "eventname":"FootBall" } ] } { “结果”: [ { “id”:“283”, “全名”:“shyam”, “联系人编号”:“89888888”, “collegename”:“mjc”, “电子邮件地址”:“shyamzawar”, “事件名称”:“游戏” }, { “id”:“285”, “全名”:“ffca”, “联系人编号”:“8888888888”, “学院名称”:“布里汉马哈拉施特拉商学院(BMCC)”, “电子邮件地址”:”shyamzawar@ymail.com", “事件名称”:“足球” } ] } 以下是我的活动:
private static final String TAG = "userList";
private List<FeedItem> feedsList;
private RecyclerView mRecyclerView;
private MyRecyclerAdapter adapter;
private ProgressBar progressBar;
private TextView ParticipantsCounts;
int count=0;

private SwipeRefreshLayout swipeRefreshLayout;

private final String url="http://bmcctroika.hol.es/get-data.php";;

private int offSet = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_admin);
    // Initialize recycler view
    mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    progressBar = (ProgressBar) findViewById(R.id.progress_bar);
    progressBar.setVisibility(View.VISIBLE);

    ParticipantsCounts= (TextView) findViewById(R.id.ParticipantsCount);

    // Downloading data from below url
    new AsyncHttpTask().execute(url);
    swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);

    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            refreshitems();
        }
    });
}

private void refreshitems() {
    new AsyncHttpTask().execute(url);
}

@Override
public void onRefresh() {
    new AsyncHttpTask().execute(url);
}

public class AsyncHttpTask extends AsyncTask<String, Void, Integer> {

    @Override
    protected void onPreExecute() {
        setProgressBarIndeterminateVisibility(true);
    }

    @Override
    protected Integer doInBackground(String... params) {
        Integer result = 0;
        HttpURLConnection urlConnection;
        try {
            URL url = new URL(params[0]);
            urlConnection = (HttpURLConnection) url.openConnection();
            int statusCode = urlConnection.getResponseCode();

            // 200 represents HTTP OK
            if (statusCode == 200)
            {
                BufferedReader r = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = r.readLine()) != null)
                {
                    response.append(line);
                }
                parseResult(response.toString());
                result = 1; // Successful

            } else {
                result = 0; //"Failed to fetch data!";
            }
        } catch (Exception e) {
            Log.d(TAG, e.getLocalizedMessage());
        }
        return result; //"Failed to fetch data!";
    }

    @Override
    protected void onPostExecute(Integer result)
    {
        // Download complete.
        progressBar.setVisibility(View.GONE);
        if (result == 1)
        {
            adapter = new MyRecyclerAdapter(AdminActivity.this, feedsList);
            mRecyclerView.setAdapter(adapter);
        } else
        {
            Toast.makeText(AdminActivity.this, "Failed to fetch data!", Toast.LENGTH_SHORT).show();
        }
        swipeRefreshLayout.setRefreshing(false);
    }
}

private void parseResult(String result) {
    try {
        JSONObject response = new JSONObject(result);
        JSONArray posts = response.optJSONArray("result");
        feedsList = new ArrayList<>();
        for (int i = 0; i < posts.length(); i++) {
            JSONObject post = posts.optJSONObject(i);
            FeedItem item = new FeedItem();
            item.setTitle(post.optString("fullname"));
            item.setContact(post.optString("contactno"));
            item.setEmail(post.optString("emailaddress"));
            item.setEventname(post.optString("eventname"));
            item.setCollegename(post.optString("collegename"));
            feedsList.add(item);
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}
}
private static final String TAG=“userList”;
私有列表feedsList;
私人回收视图mRecyclerView;
私人MyRecyclerAdapter适配器;
私人ProgressBar ProgressBar;
私人文本视图参与者;
整数计数=0;
私人SwipeRefreshLayout SwipeRefreshLayout;
私有最终字符串url=”http://bmcctroika.hol.es/get-data.php";;
私有整数偏移=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_admin);
//初始化回收器视图
mRecyclerView=(RecyclerView)findViewById(R.id.recycler\u视图);
mRecyclerView.setLayoutManager(新的LinearLayoutManager(this));
progressBar=(progressBar)findViewById(R.id.progress\u bar);
progressBar.setVisibility(View.VISIBLE);
ParticipantSconts=(TextView)findViewById(R.id.ParticipantScont);
//从下面的url下载数据
新建AsyncHttpTask().execute(url);
swipeRefreshLayout=(swipeRefreshLayout)findViewById(R.id.swipe\u refresh\u layout);
swipeRefreshLayout.setOnRefreshListener(新的swipeRefreshLayout.OnRefreshListener()){
@凌驾
公共void onRefresh(){
刷新项目();
}
});
}
私有项目(){
新建AsyncHttpTask().execute(url);
}
@凌驾
公共void onRefresh(){
新建AsyncHttpTask().execute(url);
}
公共类AsyncHttpTask扩展了AsyncTask{
@凌驾
受保护的void onPreExecute(){
SetProgressBarInDeterminateVibility(真);
}
@凌驾
受保护的整数doInBackground(字符串…参数){
整数结果=0;
HttpURLConnection-urlConnection;
试一试{
URL=新URL(参数[0]);
urlConnection=(HttpURLConnection)url.openConnection();
int statusCode=urlConnection.getResponseCode();
//200表示HTTP OK
如果(状态代码==200)
{
BufferedReader r=新的BufferedReader(新的InputStreamReader(urlConnection.getInputStream());
StringBuilder响应=新建StringBuilder();
弦线;
而((line=r.readLine())!=null)
{
响应。追加(行);
}
parseResult(response.toString());
结果=1;//成功
}否则{
结果=0;//“无法获取数据!”;
}
}捕获(例外e){
Log.d(标记,例如getLocalizedMessage());
}
返回结果;//“无法获取数据!”;
}
@凌驾
受保护的void onPostExecute(整数结果)
{
//下载完整。
progressBar.setVisibility(View.GONE);
如果(结果==1)
{
适配器=新的MyRecyclerAdapter(AdminActivity.this,feedsList);
mRecyclerView.setAdapter(适配器);
}否则
{
Toast.makeText(adminivity.this,“未能获取数据!”,Toast.LENGTH_SHORT.show();
}
swipeRefreshLayout.setRefreshing(false);
}
}
私有void parseResult(字符串结果){
试一试{
JSONObject响应=新JSONObject(结果);
JSONArray posts=response.optJSONArray(“结果”);
feedsList=新的ArrayList();
对于(int i=0;i
您需要获得
结果的
长度
JSONArray
。因此,在代码中,您可以获得
posts
--
JSONArray posts=response.optJSONArray(“结果”)。
这将为您提供结果数组中的项数:

private void parseResult(String result) {
    try {
        JSONObject response = new JSONObject(result);
        JSONArray posts = response.optJSONArray("result");
        int number = posts.length();
        //then to set it to the text view:
        ParticipantsCounts.setText(String.valueOf(number));
        //the rest of your code ...
        feedsList = new ArrayList<>();
        for (int i = 0; i < posts.length(); i++) {
            JSONObject post = posts.optJSONObject(i);
            FeedItem item = new FeedItem();
            item.setTitle(post.optString("fullname"));
            item.setContact(post.optString("contactno"));
            item.setEmail(post.optString("emailaddress"));
            item.setEventname(post.optString("eventname"));
            item.setCollegename(post.optString("collegename"));
            feedsList.add(item);
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }
}
private void parseResult(字符串结果){
试一试{
JSONObject响应=新JSONObject(结果);
JSONArray posts=response.optJSONArray(“结果”);
int number=posts.length();
//然后将其设置为文本视图:
ParticipantsCounts.setText(String.valueOf(number));
//剩下的代码。。。
feedsList=新的ArrayList();
对于(int i=0;i
太好了,我很高兴这有帮助。继续编码。嘿,等等,它在解析JSON数据时出错,计数工作正常,但现在,它