2017-02-08 105 views
0

如何将listview选定项传递给列表视图中的下一个活动?我通过它从我的数据库采取的id,当我通过选定的列表到它正在工作的文本视图。但我不知道如何将它传递给一个列表视图。有人帮我。如何在下一个活动中将选定的列表视图项传递给另一个列表视图

这是我的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); 
    } 

回答

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 ..

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

我在这里得到一个NPE错误sir jsonObject = new JSONObject(JSON_STRING); – orange

+0

得到它的工作,但它仍然显示在我设置的textview,而不是列表视图先生 – orange

+0

你的意思是说,你传递给适配器的ArrayList中没有添加数据? – Piyush

相关问题