I'm trying to add a string to a listview, the string is being received via the broadcast receiver. whenever I try to do something on my arraylist or an adapter to my listview I get a null pointer exception.
public class DevScan extends AppCompatActivity {
MyReceiver rcvr;
String test;
ArrayList<String> devlist;
ArrayAdapter<String> Adapter;
ListView devLV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dev_scan);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
rcvr=new MyReceiver();
this.registerReceiver(rcvr, new IntentFilter("CUSTOM_INTENT"));
final UDP_service srv = new UDP_service(this);
srv.start();
final ArrayList<String> devlist = new ArrayList<>();
ListView devLV = (ListView) findViewById(R.id.devlistview);
devlist.add("elloooo");
final ArrayAdapter<String> Adapter = new ArrayAdapter<String>(
this,
android.R.layout.simple_list_item_1,
devlist );
devLV.setAdapter(Adapter);
Button scanb1 = (Button) findViewById(R.id.scanbtn1);
scanb1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
devlist.clear();
Adapter.notifyDataSetChanged();
srv.Message="eloooo!";
srv.send();
}
});
}
private class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
test = intent.getExtras().getString("packet");
//it works fine when I put the Extra in a string variable
//these 3 cause NPE
// devlist.add(intent.getExtras().getString("packet"));
// devlist.add("foo");
// Adapter.notifyDataSetChanged();
Log.i("SOCK broadcast intent", test);
}
}
}
what I don't undsetand is why string variable 'test' is works fine with MyReceiver, but arraylist defined in the same way doesn't
soluton:
because of my lack of knowlage I redeclared my objects as local, by accident..