Reputation: 1463
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
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
Reputation: 173
you also need to refresh your adapter:
adapter.notifyDataSetChanged();
Upvotes: 1