我想在Dialog中显示一个选项卡,所以我使用This Library.
我可以填充对话框,Tab也可以从Tab_1切换到Tab_2。但是当我点击它的取消,确定或中性按钮时,我没有得到Toast。
请指导我如何在我的Fragments
按钮上使用初始化Toast
和BaseAdapter
。
我的代码在这里
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);
}
}
答案 0 :(得分:0)
实际上,从链接中,您提供了,他们正在传递 MainActivity.this ,您传递上下文,并且存在问题。因此,根据我的建议,只需在 MainActivity.java 类中实现这些回调,而不是适配器类。