Ejemplo n.º 1
0
  /** 显示选择话题的Fragment</br> */
  private void showTopicFragment() {
    mFragmentLatout.setVisibility(View.VISIBLE);
    hideInputMethod(mEditText);

    if (mTopicFragment == null) {
      mTopicFragment = new TopicPickerFragment();
    }
    showFragment(mTopicFragment);
    // 新增话题的回调
    mTopicFragment.addTopicListener(
        new ResultListener<Topic>() {

          @Override
          public void onRemove(Topic topic) {
            mEditText.removeTopic(topic);
          }

          @Override
          public void onAdd(Topic topic) {
            Log.d(TAG, "### topic = " + topic);
            if (isCharsOverflow(topic.name)) {
              ToastMsg.showShortMsgByResName("umeng_comm_overflow_tips");
              return;
            }
            if (!mEditText.mTopicMap.containsValue(topic)) {
              removeChar('#');
              List<Topic> topics = new ArrayList<Topic>();
              topics.add(topic);
              mEditText.insertTopics(topics);
              mSelecteTopics.add(topic);
              startFadeOutAnimForTopicTipView();
            }

            showKeyboard();
          }
        });

    // 删除话题时的回调
    mEditText.setTopicListener(
        new ResultListener<Topic>() {

          @Override
          public void onRemove(Topic topic) {
            mTopicFragment.uncheckTopic(topic);
            if (mEditText.mTopicMap.size() == 0 && !isForwardFeed) {
              startAnimationForTopicTipView();
            }
          }

          @Override
          public void onAdd(Topic topic) {}
        });
  }