2017-01-02 24 views
1

getStringExtraから値を受け取った後、この値を複数のインテントに移動できるスイッチに送信します。そして、もし私が1つのインテントに送信して、私は値がnullであるという前のインテントに戻ります。getStringExtraは複数のインテントの後にnullを返します

パブリッククラスSelect_DispoはAppCompatActivity {

ListView listview; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_select__dispo); 
    listview = (ListView) findViewById(R.id.listView); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    Intent intent = getIntent(); 
    final String value = intent.getStringExtra("divisao"); 

    RequestQueue queue = Volley.newRequestQueue(this); 
    try { 
     String url = "http://brunos.000webhostapp.com/teste/listar_dispositivos.php"; 
     JsonArrayRequest jsonRequest = new JsonArrayRequest 
       (Request.Method.GET, url, null, new Response.Listener<JSONArray>() { 
        public void onResponse(JSONArray response) { 
         try { 
          final ArrayList<String> dispositivos = new ArrayList<>(); 
          ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),R.layout.custom_divi, dispositivos); 
          Integer i = 0; 
          String dispositivo; 
          while (i!= response.length()){ 
           JSONObject obj = response.getJSONObject(i); 
           dispositivo = obj.getString("TABLE_NAME"); 
           dispositivos.add(dispositivo); 
           i++; 
          } 
          listview.setAdapter(adapter); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, new Response.ErrorListener() { 

        @Override 
        public void onErrorResponse(VolleyError error) { 
         error.printStackTrace(); 
        } 
       }); 
     queue.add(jsonRequest); 
    } catch (Exception ex) { 
    } finally { 
    } 


    listview.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      switch(position) 
      { 
       case 0: 
        Intent alarme = new Intent(getApplicationContext(), AddAlarme.class); 
        String asd= (String) listview.getItemAtPosition(position); 
        alarme.putExtra("dispositivo", asd); 
        alarme.putExtra("divisao", value); 
        startActivity(alarme); 
        break; 
       case 1: 
        Intent ar = new Intent(getApplicationContext(), AddArCondicionado.class); 
        String ar_con= (String) listview.getItemAtPosition(position); 
        ar.putExtra("dispositivo", ar_con); 
        ar.putExtra("divisao", value); 
        startActivity(ar); 

        break; 
       case 2: 
        Intent audio = new Intent(getApplicationContext(), AddAudio.class); 
        String getAudio= (String) listview.getItemAtPosition(position); 
        audio.putExtra("dispositivo", getAudio); 
        audio.putExtra("divisao", value); 
        startActivity(audio); 
        break; 
       case 3: 
        Intent estore = new Intent(getApplicationContext(), AddEstore.class); 
        String getEstore= (String) listview.getItemAtPosition(position); 
        estore.putExtra("dispositivo", getEstore); 
        estore.putExtra("divisao", value); 
        startActivity(estore); 
        break; 
       case 4: 
        Intent iluminacao = new Intent(getApplicationContext(), AddIluminacao.class); 
        String getIlu= (String) listview.getItemAtPosition(position); 
        iluminacao.putExtra("dispositivo", getIlu); 
        iluminacao.putExtra("divisao", value); 
        startActivity(iluminacao); 
        break; 
       case 5: 
        Intent porta = new Intent(getApplicationContext(), AddPorta.class); 
        String getPorta= (String) listview.getItemAtPosition(position); 
        porta.putExtra("dispositivo", getPorta); 
        porta.putExtra("divisao", value); 
        startActivity(porta); 
        break; 
       case 6: 
        Intent comando = new Intent(getApplicationContext(), AddComando.class); 
        String getComando= (String) listview.getItemAtPosition(position); 
        comando.putExtra("dispositivo", getComando); 
        comando.putExtra("divisao", value); 
        startActivity(comando); 

        break; 
      } 
     } 
    }); 

    Button btn = (Button)findViewById(R.id.button_instal_ok); 
    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent x = new Intent(Select_Dispo.this, Ask_Dispo.class); 
      startActivity(x); 
     } 
    }); 


} 

}を拡張し

+0

次に保存 '文字列値= intent.getStringExtra(「divisaoは」);私は、スイッチ上のput.Extraしようとすると、'静的変数 –

+0

中しかし、私は、静的置けば価値は私にエラーを与えます。変数 "value"は内部クラスからアクセスされ、最後に宣言する必要があります –

+0

'listview'を宣言したのと同じ方法でメソッドの外側に宣言します –

答えて

0

次のようになりますあなたの活動とのonCreate、あなたのようにそれをあなたの値を使用して保持することができるようになりますその方法よく

ListView listview; 
String value; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // your code here 
    value = intent.getStringExtra("divisao"); 
    // your code here 
} 
関連する問題