-1

I want to Show a Tabbed based inside Dialog so for this I use This Library.

I am able to populate my Dialog and also Tab is switching from Tab_1 to Tab_2. But when I am clicking on its Cancel, Ok or Neutral Button, I am not getting Toast.

Please guide me how can I use Initialize Fragments and Toast on Button Click in my BaseAdapter.

My code is here

public class ContactListAdapter extends BaseAdapter implements ISimpleDialogListener, ISimpleDialogCancelListener,IFragmentListener {
slidingListItem.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            contactListItems = contactList.get(position);
            String id_attende = contactListItems.getPhone();
            String id_attende_name = contactListItems.getName();


            TabDialogFragment.createBuilder(context, mFragmentManager)
                    .setTitle(id_attende_name)
                    .setSubTitle(id_attende)
                    .setTabButtonText(new CharSequence[]{"Calendar", "Summary"})
                    .setPositiveButtonText("Ok")
                    .setNegativeButtonText("Cancel")
                    .setNeutralButtonText("Neutral")
                    .setRequestCode(REQUEST_TABBED_DIALOG)
                    .show();
        }
    });

    return convertView;
}
@Override
public void onCancelled(int requestCode) {
    switch (requestCode) {
        case REQUEST_TABBED_DIALOG:
            Toast.makeText(context, "Dialog cancelled", Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
    }
}

@Override
public void onNegativeButtonClicked(int requestCode) {
    if (requestCode == REQUEST_TABBED_DIALOG) {
        Toast.makeText(context, "Negative button clicked", Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onNeutralButtonClicked(int requestCode) {
    if (requestCode == REQUEST_TABBED_DIALOG) {
        Toast.makeText(context, "Neutral button clicked", Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onPositiveButtonClicked(int requestCode) {
    if (requestCode == REQUEST_TABBED_DIALOG) {
        Toast.makeText(context, "Positive button clicked", Toast.LENGTH_SHORT).show();
    }
}

@Override
public void onFragmentViewCreated(Fragment fragment) {
    int selectedTabPosition = fragment.getArguments().getInt(PageFragment.ARG_DAY_INDEX, 0);
    View rootContainer = fragment.getView().findViewById(R.id.root_container);
    Log.i(TAG, "Position: " + selectedTabPosition);

    switch (selectedTabPosition) {
        case 0:
            selectedTabPositionZeroCase(rootContainer);
            break;
        case 1:
            selectedTabPositionOneCase(rootContainer);
            break;
        default:
            break;
    }


}

private void selectedTabPositionZeroCase(View rootContainer) {
    // add view in container for first tab
    LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View tabProductDetailLayout = li.inflate(R.layout.tab_one_layout, (ViewGroup) rootContainer);
    TextView textView = (TextView) tabProductDetailLayout.findViewById(R.id.text_view);
    textView.setText("hello: tab1");
}

private void selectedTabPositionOneCase(View rootContainer) {
    // add view in container for second tab
    LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View tabProductDetailLayout2 = li.inflate(R.layout.tab_one_layout, (ViewGroup) rootContainer);

    TextView textView1 = (TextView) tabProductDetailLayout2.findViewById(R.id.text_view);
    textView1.setText("hello: tab2");
}

@Override
public void onFragmentAttached(Fragment fragment) {
    mMyScheduleFragments.add(fragment);
}

@Override
public void onFragmentDetached(Fragment fragment) {
    mMyScheduleFragments.remove(fragment);
}
}
Jitesh Prajapati
  • 2,533
  • 4
  • 29
  • 51

1 Answers1

0

Actually from the link, you have provided, They are passing the MainActivity.this where you are passing context and there is a problem. So as per my suggestion just implement these callbacks in your MainActivity.java class instead of Adapter class.

Rahul Sharma
  • 12,515
  • 6
  • 21
  • 30