如何在下一个活动

时间:2017-02-08 11:43:44

标签: android json listview

如何将listview所选项目传递到listview中的下一个活动?我通过从我的数据库中获取的id传递它,当我将所选列表传递到textview时它正在工作。但我不知道如何将它传递给listview。有人帮我。

这是我将id传递给下一个活动的代码

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);
    }

2 个答案:

答案 0 :(得分:0)

使用像这样的模态类可以帮助

public class Version implements Serializable{
        public Version(String name, String version, String released) {
        this.name = name;
        this.version = version;
        this.released = released;
    }

    private String name;
    private String version;
    private String released;
    private String api;
    private String image;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getReleased() {
        return released;
    }

    public void setReleased(String released) {
        this.released = released;
    }

    public String getApi() {
        return api;
    }

    public void setApi(String api) {
        this.api = api;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}

并使用构造函数获取并设置所有值为

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            HashMap<String, String> selected = androidversions.get(position);
                Version verison = new Version(selected.getString("name"),selected.getString("version"),selected.getString("released"))
                Intent intent = new Intent(MainActivity.this, DetailActivity.class);
                intent.putExtra("verisonDetails", verison);
                startActivity(intent);
            }
        });

在详细信息活动中,您可以获得

version = (Version) getIntent().getExtras().getSerializable("verisonDetails");
在onCreate()中

并将每个值作为version.get ..

答案 1 :(得分:0)

您可以在其他列表视图中使用这些详细信息:

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);

        //Get details from intent that is passed from previous listview and set it to new list.
        HashMap<String,String> map = new HashMap<>();
        map.put(Config.TAG_teamone, teamone);
            map.put(Config.TAG_teamonepts,teamonepts);
            map.put(Config.TAG_teamtwo,teamtwo);
            map.put(Config.TAG_teamtwopts,teamonepts);
            map.put(Config.TAG_s_name,s_name);
            map.put(Config.TAG_s_gender,s_gender);
         list.add(map);

        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);
}