Why does my Android activity remain empty after getting permissions and adding list data to it?

This is my main activity, in which there are methods for requesting permissions to read the calendar and call the phone, which receive events from the calendar extraction number, etc., and display it in action. But it remains empty for the first run after giving permission, for the next run all the data appears, why is this happening?

public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // get the listview expListView = (ExpandableListView) findViewById(R.id.lvExp); getPermissionToDialToAContact(); getPermissionToReadCalender(); // preparing list data if (listDataHeader != null && listDataChild != null) { listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild); // setting list adapter expListView.setAdapter(listAdapter); // Listview Group click listener expListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { return false; } }); // Listview Group expanded listener expListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { } }); // Listview Group collasped listener expListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { } }); // Listview on child click listener expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub callPosition= phoneNumber.size(); if(childPosition<callPosition){ dialContact(phoneNumber,childPosition); } return false; } }); } } }} @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case READ_CALENDER: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { Log.i("mainactonreqpermethod ","mainactonreqpermethod"); RuntimeData.setsCalendarData(getCalender(null)); prepareListData(); } else { // permission denied, boo! Disable the // functionality that depends on this permission. } return ; } // other 'case' lines to check for other // permissions this app might request case CALL_PHONE: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { } else { // permission denied, boo! Disable the // functionality that depends on this permission. } return; } } } private void getPermissionToReadCalender() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) { if (shouldShowRequestPermissionRationale( Manifest.permission.READ_CALENDAR)) { } requestPermissions(new String[]{Manifest.permission.READ_CALENDAR}, READ_CALENDER); }else { RuntimeData.setsCalendarData(getCalender(null)); prepareListData();//adding data to list } } private void prepareListData() { // mEventDesc=mData.getEventTitle(); if (RuntimeData.getsCalendarData()!=null){ Log.i("runtimedata","runtimedata"); mData = RuntimeData.getsCalendarData(); Log.i("runtimedatatomdata","runtimedatatomdata"); } Log.i("list daataheader", "list daataheader" +mData.getEventTitle()); if(mData.getEventTitle()!=null) { listDataHeader = new ArrayList<String>(); phNum=new ArrayList<String>(); child1=new ArrayList<String>(); // listDataHeader = mData.getEventTitle(); listDataChild = new HashMap<String, List<String>>(); Log.i("list daataheader", "list daataheader" + listDataHeader); Log.i("list daatachild", "list daatachild" + listDataChild); // Adding child data listDataHeader.add(mData.getEventTitle().get(0)); // listDataHeader.add(mData.getEventTitle().get(1)); // listDataHeader.add(mData.getEventTitle().get(2)); mEventData= extractDescription(mData); // listDataHeader.add("Top 250"); // listDataHeader.add("Now Showing"); // listDataHeader.add("Coming Soon.."); // Adding child data if(mEventData!=null) { for (int i = 0; i < mEventData.getPhoneNumber().size(); i++) { phNum = mEventData.getPhoneNumber(); child1.add(phNum.get(i)); Log.i("list daatachild", "list daatachild" + String.valueOf(phNum)); } Log.i("list daataheader", "list daataheader" +child1.size()); child1.add(mEventData.getMeetingID().get(0)); child1.add(mEventData.getMeetingPassWord().get(0)); listDataChild.put(listDataHeader.get(0), child1); }} private void getPermissionToDialToAContact() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { if (shouldShowRequestPermissionRationale( Manifest.permission.CALL_PHONE)) { } requestPermissions(new String[]{Manifest.permission.CALL_PHONE}, CALL_PHONE); }else { } } } 
+5
source share

Source: https://habr.com/ru/post/1258939/


All Articles