2016-09-15 3 views
-1

내 안에 탭 기반의 대화 상자를 표시하고 싶습니다.이 용도로 사용할 수 있습니다. This Library.BaseAdapter에서 Tab을 전환 할 때 토스트를 표시하는 방법은 무엇입니까?

대화 상자를 채울 수 있으며 탭이 Tab_1에서 Tab_2로 전환 중입니다. 그러나 Cancel, Ok 또는 Neutral Button을 클릭 할 때 토스트가 나오지 않습니다.

나를 어떻게 안내 할 수 있습니까? BaseAdapter에 Button Click에서 FragmentsToast 초기화를 사용하는 방법을 알려주십시오. 당신이 상황를 전달하고 문제가있을 경우

내 코드는 여기 링크에서 실제로

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

및 TabDialogFragment는 자신의 클래스입니까? –

+0

안녕 rahul .. 고마워 .. 사실 나는 인터페이스를 사용하여 콜백을 호출합니다. 대화 상자에서 스 와이프 할 때 오류는 없지만 토스트를 표시하지 않거나 tab_1 및 tab_2 데이터를 표시하지 않습니다. –

답변

0

, 당신이 제공 한 그들은 MainActivity.this을 전달하고 있습니다. 따라서 제 제안에 따라 MainActivity.java 클래스에 어댑터 클래스 대신 이러한 콜백을 구현하기 만하면됩니다.

+0

라훌 감사합니다. 그러나 아직도 내가 받고있는 토스트가 없습니다 .. 내 활동에 신청했습니다. –

+0

콜백은 아무 것도하지 않습니다. 이것은 주된 문제입니다. 나는 벌써 노력했다. 하지만 친절한 행동에 정말 감사드립니다. –

+0

질문을 최신 코드로 업데이트하십시오. 활동 클래스와 어댑터 클래스. –

관련 문제