Gość Opublikowano 18 Maja 2016 Zgłoś Opublikowano 18 Maja 2016 (edytowane) Cześć, piszę sobie appke, i mam problem... nie rozumiem skąd się bierze null pointer exception gdy próbuję operować na obiektach devlist i adapter w klasie MyReceiver. wiem na czym polega ten wyjątek ale nie wiem dlaczego on powstaje. obojętnie czy zadeklaruję obiekty jako protected, public czy static. wygląda to tak że deklaracja działa tak jak wydaje mi się że powinna, natomiast w klasie wewnętrznej nie widać inicjalizacji. kod wygląda tak public class DevScan extends AppCompatActivity { MyReceiver rcvr; String test; ArrayList<String> devlist; ArrayAdapter<String> Adapter; ListView devLV; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dev_scan); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); ArrayList<String> devlist = new ArrayList<String>(); ListView devLV = (ListView) findViewById(R.id.devlistview); ArrayAdapter<String> Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,devlist ); rcvr=new MyReceiver(); this.registerReceiver(rcvr, new IntentFilter("com.tutorialspoint.CUSTOM_INTENT")); } private class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ //test = intent.getExtras().getString("packet"); devlist.add("foo"); Adapter.notifyDataSetChanged(); } } } Edytowane 18 Maja 2016 przez Gość Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Małpożer Opublikowano 18 Maja 2016 Zgłoś Opublikowano 18 Maja 2016 (edytowane) Stworzyles zmienna zaslaniajaca lokalnie zmienne w klasie. Tylko nie wiem czy nie powinno byc this.zmienna :P protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dev_scan); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); /* POPRAWKA PONIZEJ */ devlist = new ArrayList<String>(); devLV = (ListView) findViewById(R.id.devlistview); Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,devlist ); rcvr=new MyReceiver(); this.registerReceiver(rcvr, new IntentFilter("com.tutorialspoint.CUSTOM_INTENT")); } Edytowane 18 Maja 2016 przez Quave Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość Opublikowano 18 Maja 2016 Zgłoś Opublikowano 18 Maja 2016 działa! byłem pewny że to jakaś <span style='color: red;'>[ciach!]</span>ła o której nie wiem! i teraz rozumiem dlaczego nie widział inicjalizacji. inicjalizowałem zmienne zmienne lokalne które nieświadomie zadeklarowałem.. dzięki! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...