2014-07-22 31 views
-1

我試圖查看另一個佈局中的「enderecos」值,我解析一個json並使用凌空適配器,我正在遵循this教程並嘗試調整onClick在那裏使用的函數。但是,當我切換到新的佈局,它什麼都沒給我說使用意圖和模型的開關佈局android Getter和Setters

我錯過了什麼?我對android開發很陌生。

public class MainActivity extends Activity { 

    private String TAG = this.getClass().getSimpleName(); 
    private ListView lstView; 

    private RequestQueue mRequestQueue; 
    private ArrayList<ClientesModel> arrNews ; 
    private ArrayList<ClientesContatosModel> arrContatos ; 
    private LayoutInflater lf; 
    private VolleyAdapter va; 
    private ProgressDialog pd; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     lf = LayoutInflater.from(this); 


     arrNews = new ArrayList<ClientesModel>(); 
     arrContatos = new ArrayList<ClientesContatosModel>(); 
     va = new VolleyAdapter(); 

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

     lstView.setAdapter(va); 
     mRequestQueue = Volley.newRequestQueue(this); 
     String url = "http://192.168.1.17/mais-api/api/clientes/index.php"; 
     pd = ProgressDialog.show(this,"Please Wait...","Please Wait..."); 







     JsonObjectRequest jr = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 




      @Override 
      public void onResponse(JSONObject response) { 
       Log.i(TAG,response.toString()); 
       try { 
        parseJson(response); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       va.notifyDataSetChanged(); 
       pd.dismiss(); 
       ;   } 
     }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d(TAG, "Error: " + error.getMessage()); 
       error.printStackTrace(); 
       pd.hide(); 
      } 
     }) { 

      @Override 
      public Map<String, String> getParams() throws com.android.volley.AuthFailureError{ 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put("email", "[email protected]"); 
       params.put("senha", "xxx"); 


       return params; 
      } 


     }; 
     mRequestQueue.add(jr); 



    } 



    private void parseJson(JSONObject json) throws JSONException{ 
     try{ 



      JSONArray dados = json.getJSONArray("dados"); 

      for(int i=0;i<dados.length();i++) { 

       JSONObject item = dados.getJSONObject(i); 


       ClientesModel mClientesModel = new ClientesModel(); 
       ClientesContatosModel mClientesContatoModel = new ClientesContatosModel(); 

       /* cadastra os dados necessários no objeto no modelo */ 
       mClientesModel.setId(item.optInt("id")); 
       mClientesModel.setNome(item.optString("nome")); 
       mClientesModel.setTipo_pessoa(item.optString("tipo_pessoa")); 
       mClientesModel.setInformacoes_adicionais(item.optString("informacoes_adicionais")); 
       mClientesModel.setCpf(item.optString("cpf")); 
       mClientesModel.setCnpj(item.optString("cnpj")); 
       JSONArray contatos = item.getJSONArray("enderecos"); 
       for(int j=0;j<contatos.length();j++){ 
        JSONObject data = contatos.getJSONObject(j); 

        mClientesContatoModel.setNome(data.optString("endereco")); 

       } 

       arrNews.add(mClientesModel); 
       arrContatos.add(mClientesContatoModel); 
      } 


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




    } 






    public class VolleyAdapter extends BaseAdapter{ 

     @Override 
     public int getCount() { 
      return arrNews.size(); 
     } 

     @Override 
     public Object getItem(int i) { 
      return arrNews.get(i); 

     } 

     @Override 
     public long getItemId(int i) { 
      return 0; 
     } 

     @Override 
     public View getView(final int i, View view, ViewGroup viewGroup) { 
      final ViewHolder vh ; 
      if(view == null){ 
       vh = new ViewHolder(); 
       view = lf.inflate(R.layout.row_listview,null); 
       vh.tvTitle = (TextView) view.findViewById(R.id.txtTitle); 
       vh.tvDesc = (TextView) view.findViewById(R.id.txtDesc); 
       vh.tvDate = (TextView) view.findViewById(R.id.txtDate); 
       vh.tvContato = (TextView) view.findViewById(R.id.txtNome); 


       view.setTag(vh); 
      } 
      else{ 
       vh = (ViewHolder) view.getTag(); 
      } 

      ClientesModel nm = arrNews.get(i); 
      vh.tvTitle.setText(nm.getNome()); 

      vh.tvDesc.setText(nm.getTipo_pessoa()); 


      final ClientesContatosModel nm2 = arrContatos.get(i); 



      view.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent in = new Intent(getApplicationContext(), 
         ContatosView.class); 



       in.putExtra("endereco", "nome"); 



       startActivity(in); 

      } 
     }); 



      return view; 

     } 






     public class ViewHolder{ 
      TextView tvTitle; 
      TextView tvDesc; 
      TextView tvDate; 
      TextView tvContato; 

     } 

    } 
} 

ContatosView:

public class ContatosView extends MainActivity { 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.contatos_view); 

     Intent in = getIntent(); 

     // Get JSON values from previous intent 
     String name = in.getStringExtra("nome"); 


     // Displaying all values on the screen 
     TextView lblName = (TextView) findViewById(R.id.txtNome); 


     lblName.setText(name); 



    } 


} 
+0

爲什麼你需要'setContentView(R.layout.contatos_view);'?錯誤 – Raghunandan

+0

請從LogCat發佈日誌。 –

+0

我想切換佈局,當我點擊列表視圖中的一個項目 – AND4011002849

回答

0

我已經成功地解決了這個問題,就像有人告訴我做的,使用意圖:

view.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        ClientesContatosModel md = arrContatos.get(i); 


        Intent in = new Intent(getApplicationContext(), 
          ContatosView.class); 


        in.putExtra("endereco",md.getNome()); 





        startActivity(in); 

       } 
      }); 

ContatosView:

public class ContatosView extends MainActivity { 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.contatos_view); 

     Intent in = getIntent(); 

     // Get JSON values from previous intent 
     String name = in.getStringExtra("endereco"); 


     // Displaying all values on the screen 
     TextView lblName = (TextView) findViewById(R.id.txtNome); 


     lblName.setText(name); 



    } 


} 

感謝您的幫助!