예제 #1
0
 private void selectListItem(final ListView l, int num, boolean longClick) {
   final int n = Math.min(l.getCount(), Math.max(1, num)) - 1;
   requestFocus(l);
   Log.i("nofatclips", "Swapping to listview item " + num);
   solo.sendKey(Solo.DOWN);
   getActivity()
       .runOnUiThread(
           new Runnable() {
             public void run() {
               l.setSelection(n);
             }
           });
   sync();
   if (n < l.getCount() / 2) {
     solo.sendKey(Solo.DOWN);
     solo.sendKey(Solo.UP);
   } else {
     solo.sendKey(Solo.UP);
     solo.sendKey(Solo.DOWN);
   }
   sync();
   if (longClick) {
     longClick(l.getSelectedView());
   } else {
     click(l.getSelectedView());
   }
 }
예제 #2
0
  public String getSimpleType(View v) {
    String type = v.getClass().getName();
    if (type.endsWith("null")) return NULL;
    if (type.endsWith("RadioButton")) return RADIO;
    if (type.endsWith("CheckBox") || type.endsWith("CheckedTextView")) return CHECKBOX;
    if (type.endsWith("ToggleButton")) return TOGGLE_BUTTON;
    if (type.endsWith("IconMenuView")) return MENU_VIEW;
    if (type.endsWith("DatePicker")) return DATE_PICKER;
    if (type.endsWith("TimePicker")) return TIME_PICKER;
    if (type.endsWith("IconMenuItemView")) return MENU_ITEM;
    if (type.endsWith("DialogTitle")) return DIALOG_VIEW;
    if (type.endsWith("Button")) return BUTTON;
    if (type.endsWith("EditText")) return EDIT_TEXT;
    if (type.endsWith("Spinner")) {
      Spinner s = (Spinner) v;
      if (s.getCount() == 0) return EMPTY_SPINNER;
      return SPINNER;
    }
    if (type.endsWith("SeekBar")) return SEEK_BAR;
    if (v instanceof RatingBar && (!((RatingBar) v).isIndicator())) return RATING_BAR;
    if (type.endsWith("TabHost")) return TAB_HOST;
    if (type.endsWith("ListView") || type.endsWith("ExpandedMenuView")) {
      ListView l = (ListView) v;
      if (l.getCount() == 0) return EMPTY_LIST;

      if (l.getAdapter().getClass().getName().endsWith("PreferenceGroupAdapter")) {
        return PREFERENCE_LIST;
      }

      switch (l.getChoiceMode()) {
        case ListView.CHOICE_MODE_NONE:
          return LIST_VIEW;
        case ListView.CHOICE_MODE_SINGLE:
          return SINGLE_CHOICE_LIST;
        case ListView.CHOICE_MODE_MULTIPLE:
          return MULTI_CHOICE_LIST;
      }
    }
    if (type.endsWith("TextView")) return TEXT_VIEW;
    if (type.endsWith("ImageView")) return IMAGE_VIEW;
    if (type.endsWith("LinearLayout")) return LINEAR_LAYOUT;
    if ((v instanceof WebView) || type.endsWith("WebView")) return WEB_VIEW;
    if (type.endsWith("TwoLineListItem")) return LIST_ITEM;
    return "";
  }
예제 #3
0
  /**
   * 点击事件逻辑
   *
   * @param v
   */
  public void widgetClick(View v) {
    switch (v.getId()) {

        // 清空聊天记录按钮
      case R.id.container_menu:
        {
          String st5 = getResources().getString(R.string.Whether_to_empty_all_chats);
          startActivityForResult(
              new Intent(this, AlertDialog.class)
                  .putExtra("titleIsCancel", true)
                  .putExtra("msg", st5)
                  .putExtra("cancel", true),
              REQUEST_CODE_EMPTY_HISTORY);
          break;
        }

      case R.id.btn_set_mode_voice:
        {
          // 点击录音部分视图显示状态变化
          hideKeyboard();
          edittext_layout.setVisibility(View.GONE);
          more.setVisibility(View.GONE);
          v.setVisibility(View.GONE);
          buttonSetModeKeyboard.setVisibility(View.VISIBLE);
          buttonSend.setVisibility(View.GONE);
          btnMore.setVisibility(View.VISIBLE);
          buttonPressToSpeak.setVisibility(View.VISIBLE);
          iv_emoticons_normal.setVisibility(View.VISIBLE);
          iv_emoticons_checked.setVisibility(View.INVISIBLE);
          btnContainer.setVisibility(View.VISIBLE);
          emojiIconContainer.setVisibility(View.GONE);
          break;
        }

      case R.id.btn_set_mode_keyboard:
        {
          // 点击键盘按钮图标显示状态变化
          edittext_layout.setVisibility(View.VISIBLE);
          more.setVisibility(View.GONE);
          v.setVisibility(View.GONE);
          buttonSetModeVoice.setVisibility(View.VISIBLE);
          mEditTextContent.requestFocus();
          buttonPressToSpeak.setVisibility(View.GONE);
          if (TextUtils.isEmpty(mEditTextContent.getText())) {
            btnMore.setVisibility(View.VISIBLE);
            buttonSend.setVisibility(View.GONE);
          } else {
            btnMore.setVisibility(View.GONE);
            buttonSend.setVisibility(View.VISIBLE);
          }
          break;
        }

      case R.id.btn_more:
        {
          // 点击更多按钮
          if (more.getVisibility() == View.GONE) {
            hideKeyboard();
            more.setVisibility(View.VISIBLE);
            btnContainer.setVisibility(View.VISIBLE);
            alarmPreview_layout.setVisibility(View.GONE);
            emojiIconContainer.setVisibility(View.GONE);
          } else if (emojiIconContainer.getVisibility() == View.VISIBLE) {
            emojiIconContainer.setVisibility(View.GONE);
            btnContainer.setVisibility(View.VISIBLE);
            iv_emoticons_normal.setVisibility(View.VISIBLE);
            iv_emoticons_checked.setVisibility(View.INVISIBLE);
          } else if (alarmPreview_layout.getVisibility() == View.VISIBLE) {
            alarmPreview_layout.setVisibility(View.GONE);
            btnContainer.setVisibility(View.VISIBLE);
          } else {
            more.setVisibility(View.GONE);
          }
          break;
        }

      case R.id.et_sendmessage:
        {
          listView.setSelection(listView.getCount() - 1);
          if (more.getVisibility() == View.VISIBLE) {
            more.setVisibility(View.GONE);
            iv_emoticons_normal.setVisibility(View.VISIBLE);
            iv_emoticons_checked.setVisibility(View.INVISIBLE);
          }
          break;
        }

      default:
        break;
    }
  }