0

My code crashes in the line registerForContextMenu(lv);

Can you see the problem? i am stuck for hours.

i am trying to connect a listview i know its something small but i cant find it please need some help the code:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_boss);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        datasource = new TableInfoDataSource(this);
        datasource.open();
        userPreferences = null;
        userPreferences = datasource.getAllPublications();
        lv = (ListView) findViewById(android.R.id.list);
        registerForContextMenu(lv); // for context menu!
        adapter = new CustomAdapter(Boss.this, R.layout.simple_list_item_2, userPreferences);
        lv.setAdapter(adapter);
        datasource.close();
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                        .setAction("Action", null).show();
                Intent intent_employee = new Intent(Boss.this, BossAddJob.class);
                startActivity(intent_employee);
            }
        });


    }

    class CustomAdapter extends ArrayAdapter<TableInfo> {

        Context context;
        int layoutResourceId;
        ArrayList<TableInfo> data = null;
        private LayoutInflater mInflater;


        public CustomAdapter(Context context, int layoutResourceId, ArrayList<TableInfo> data) {
            super(context, layoutResourceId, data);
            this.layoutResourceId = layoutResourceId;
            this.context = context;
            this.data = data;
            this.mInflater = LayoutInflater.from(context);
        }

 @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        //final SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

        switch (item.getItemId()) {
            case R.id.ViewInContextMenu:

                return true;

            case R.id.DeleteInContextMenu:

                return true;
            default:
                return super.onContextItemSelected(item);
        }
Shubham Shukla
  • 988
  • 2
  • 13
  • 28
Eva Zana
  • 95
  • 8

1 Answers1

0

The problem lies in your ListView initialization:

lv = (ListView) findViewById(android.R.id.list);

... since you only use the "android" keyword for standard android features that come shipped with the SDK. That said you need to use only "R.id.list" instead which implies that you're referring to a resource file (layout XML file in this case) within your res directory assuming that you have the ListView configured properly in your layout, R.layout.activity_boss.

DaveNOTDavid
  • 1,753
  • 5
  • 19
  • 37