从BaseAdapter切换Tab时如何显示吐司?

时间:2016-09-15 12:08:37

标签: android android-fragments baseadapter

我想在Dialog中显示一个选项卡,所以我使用This Library.

我可以填充对话框,Tab也可以从Tab_1切换到Tab_2。但是当我点击它的取消,确定或中性按钮时,我没有得到Toast。

请指导我如何在我的Fragments按钮上使用初始化ToastBaseAdapter

我的代码在这里

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);
}
}

1 个答案:

答案 0 :(得分:0)

实际上,从链接中,您提供了,他们正在传递 MainActivity.this ,您传递上下文,并且存在问题。因此,根据我的建议,只需在 MainActivity.java 类中实现这些回调,而不是适配器类。