Jump to content
Guest

Java, widoczność obiektów w klasie wewnętrznej

Recommended Posts

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


    }
    }


}
Edited by Guest

Share this post


Link to post
Share on other sites

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

 

Edited by Quave

Share this post


Link to post
Share on other sites

działa! byłem pewny że to jakaś <span style='color: red;'>[ciach&#33;]</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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...