Atul Dhanuka
Atul Dhanuka

Reputation: 1463

Checked Box is not getting VISIBLE

I am new to Android Application in which i need a help my checkbox which is been placed in gridview is not getting visible when i click the icon which is been placed in Toolbar

Code:-

public class MyActivity extends Fragment {
   public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
     myView=inflater.inflate(R.layout.activity_room_summary,null);
     setHasOptionsMenu(true);
     initializeValue();
     return myView;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if(id == R.id.action_dash){
        checkBox.setVisibility(View.VISIBLE);//Not working
        return true;
    }
      return super.onOptionsItemSelected(item);
    }
}

public void initializeValue(){
  adapter = new MyAdapter(ctx, R.layout.activity_list, listMy);
}


public class MyAdapter extends ArrayAdapter<My> {
  @Override
  public View getView ( int position, View convertView, ViewGroup parent ) {
    checkBox.setVisibility(View.INVISIBLE);
  }
}

Upvotes: 0

Views: 80

Answers (2)

Rami
Rami

Reputation: 7929

It will not work like that, because the CheckBox is in GridView so you need to notify the adapter.

Try this:

public class MyActivity extends Fragment {

   boolean mIsCheckBoxVisible;

   public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
     myView=inflater.inflate(R.layout.activity_room_summary,null);
     setHasOptionsMenu(true);
     initializeValue();
     return myView;
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if(id == R.id.action_dash){
        mIsCheckBoxVisible = true;
        adapter.notifyDataSetChanged();
        return true;
    }
      return super.onOptionsItemSelected(item);
    }
}

public void initializeValue(){
  adapter = new MyAdapter(ctx, R.layout.activity_list, listMy);
}


public class MyAdapter extends ArrayAdapter<My> {
  @Override
  public View getView ( int position, View convertView, ViewGroup parent ) {

     if(mIsCheckBoxVisible){
       checkBox.setVisibility(View.VISIBLE);
     } else {
       checkBox.setVisibility(View.INVISIBLE);
     }
  }
}

Upvotes: 1

sj_8
sj_8

Reputation: 173

you also need to refresh your adapter:

adapter.notifyDataSetChanged();

Upvotes: 1

Related Questions