如何将数据从listview传递到另一个列表视图

时间:2017-02-08 16:30:03

标签: android listview

如何在下次活动中点击查看另一个列表视图时从列表视图传递?我在我的数据库中检索了我的数据,我试图通过他们的ID过滤选择,并在我点击列表视图中的项目时显示来自相同ID的所有内容。

这是我第一次活动中的onclick listview

@Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent (this, Sample.class);
        HashMap<String,String> map =(HashMap)parent.getItemAtPosition(position);
        String s_id = map.get(Config.TAG_s_id).toString();
        String s_name = map.get(Config.TAG_s_name).toString();
        String s_gender = map.get(Config.TAG_s_gender).toString();
        String teamone = map.get(Config.TAG_teamone).toString();
        String teamonepts = map.get(Config.TAG_teamonepts).toString();
        String teamtwo = map.get(Config.TAG_teamtwo).toString();
        String teamtwopts = map.get(Config.TAG_teamtwopts).toString();
        intent.putExtra(Config.S_id,s_id);
        intent.putExtra(Config.S_name,s_name);
        intent.putExtra(Config.S_gender,s_gender);
        intent.putExtra(Config.Teamone,teamone);
        intent.putExtra(Config.Teamonepts,teamonepts);
        intent.putExtra(Config.Teamtwo,teamtwo);
        intent.putExtra(Config.Teamtwopts,teamtwopts);
        startActivity(intent);
    }

这是我的第二项活动

editTextId = (EditText) findViewById(R.id.editTextId);
        title1ID = (TextView) findViewById(R.id.s_genderID);
        contentID = (TextView) findViewById(R.id.s_nameID);
        dateID = (TextView) findViewById(R.id.teamone);
        teamoneptsID = (TextView) findViewById(R.id.teamonepts);
        teamtwoID = (TextView) findViewById(R.id.teamtwo);
        teamtwoptsID = (TextView) findViewById(R.id.teamtwopts);

        listview = (ListView) findViewById(R.id.listView);

        Typeface font = Typeface.createFromAsset(getAssets(), "arial.ttf");
        title1ID.setTypeface(font);
        contentID.setTypeface(font);
        dateID.setTypeface(font);

        editTextId.setText(id);
        title1ID.setText(titl);
        contentID.setText(cont);
        dateID.setText(date);
        teamoneptsID.setText(teamonepts);
        teamtwoID.setText(teamtwo);
        teamtwoptsID.setText(teamtwopts);
        getResult();

private void getResult() {
        class GetResult extends AsyncTask<Void, Void, String> {
            @Override
            protected void onPreExecute() {
                super.onPreExecute();

            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                showResult(s);
            }

            @Override
            protected String doInBackground(Void... params) {
                RequestHandler rh = new RequestHandler();
                String s = rh.sendGetRequestParam(Config.URL_Sport1, id);
                return s;
            }
        }
        GetResult ge = new GetResult();
        ge.execute();
    }

    private void showResult(String json) {
        try {
            JSONObject jsonObject = new JSONObject(json);
            JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY1);
            JSONObject c = result.getJSONObject(0);


        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    private void showResult(){
        JSONObject jsonObject = null;
        ArrayList<HashMap<String,String>> list = new ArrayList<>();
        try {
            jsonObject = new JSONObject(JSON_STRING);
            JSONArray result = jsonObject.getJSONArray(Config.TAG_JSON_ARRAY2);

            for(int i = 0; i<result.length(); i++){
                JSONObject jo = result.getJSONObject(i);
                String teamone = jo.getString(Config.TAG_teamone);
                String teamonepts = jo.getString(Config.TAG_teamonepts);
                String teamtwo = jo.getString(Config.TAG_teamtwo);
                String teamtwopts = jo.getString(Config.TAG_teamtwopts);
                String s_name = jo.getString(Config.TAG_s_name);
                String s_gender = jo.getString(Config.TAG_s_gender);
                HashMap<String,String> match = new HashMap<>();
                match.put(Config.TAG_teamone, teamone);
                match.put(Config.TAG_teamonepts,teamonepts);
                match.put(Config.TAG_teamtwo,teamtwo);
                match.put(Config.TAG_teamtwopts,teamtwopts);
                match.put(Config.TAG_s_name,s_name);
                match.put(Config.TAG_s_gender,s_gender);
                list.add(match);
            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

        ListAdapter adapter = new SimpleAdapter(
                Sample.this, list, R.layout.gamesadapterlayout,
                new String[]{Config.TAG_teamone,Config.TAG_teamonepts, Config.TAG_teamtwo, Config.TAG_teamtwopts, Config.TAG_s_name, Config.TAG_s_gender},
                new int[]{ R.id.team1, R.id.score1, R.id.team2, R.id.score2, R.id.Type, R.id.s_gender});
        listview.setAdapter(adapter);
    }

我试图通过将所有相同的id与所单击的项目放在列表视图中,将我的第一个活动中的所有内容放入下一个活动中。我得到的是相同id的textview,只有1个结果而不是listview。

请有人帮助我。

0 个答案:

没有答案