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()); } }
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 ""; }
/** * 点击事件逻辑 * * @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; } }