>위챗 애플릿 >위챗 개발 >안드로이드 고도모조 WeChat 결제 비밀번호 입력 제어 예시 코드

안드로이드 고도모조 WeChat 결제 비밀번호 입력 제어 예시 코드

高洛峰
高洛峰원래의
2017-03-27 13:39:561915검색

본 글에서는 주로 Android모조가 많은 WeChat 결제 비밀번호 입력에 대해 자세히 소개합니다. 구체적인 구현 컨트롤 코드는 참고용입니다.

위챗 결제 비밀번호 컨트롤과 마찬가지로 최근 앱에서 이 기능이 필요해서 구현했습니다.
평소에는 촬영할 때 올바른 각도를 찾아야 하지만 이제 이 "작지만 아름다운" 제어를 위해서는 우리의 생각이 이렇습니다.

Ⅰ. 입력할 비밀번호 개수는 코드를 통해 동적으로 불러옵니다.

Ⅱ. Gridview를 사용하여 입력 숫자 키보드를 시뮬레이션하고, 평소와 같이 화면 하단에서 팝업합니다. >Ⅲ. 입력된 숫자 키보드를 모니터링하여 입력된 숫자를 이

비밀번호 상자

에 입력하고, 동일한 길이의 비밀번호를 입력하면 이벤트 콜백을 수행합니다. 지도는 다음과 같아야 합니다.

안드로이드 고도모조 WeChat 결제 비밀번호 입력 제어 예시 코드우선 필요에 따라 비밀번호 상자를 동적으로 로드해야 합니다. 해당 코드는 다음과 같습니다.

for (int i = 0; i <p style="text-align: left;">여기서 비밀번호 길이를 6으로 설정하고 6개의 비밀번호 상자 컨트롤을 추가하여 이러한 컨트롤을 유지합니다. 상위 컨트롤로 이동하면 각 비밀번호 컨트롤에 별도의 컨트롤이 있고 각 비밀번호 입력 컨트롤을 해당 컨트롤에 넣습니다. </p> 배열 <p style="text-align: left;"> 그런 다음 Gridview를 사용하여 12각형의 시뮬레이션된 숫자 키보드를 생성하므로 시뮬레이션된 키보드는 다음과 같습니다. <a href="http://www.php.cn/wiki/58.html" target="_blank"></a></p><p style="text-align: left;"></p>소스 코드는 다음과 같아야 합니다. <p style="text-align: left;"></p><pre class="brush:php;toolbar:false"> /**
  * 加载数据的代码
  */
 private void initData() {
  /* 初始化按钮上应该显示的数字 */
  for (int i = 1; i  map = new HashMap<string>();
   if (i  parent, View view,
     int position, long id) {
    if (position = -1 && currentIndex = -1) { // 判断是否删除完毕————要小心数组越界
       tvList[currentIndex--].setText("");
      }
     }
    }
   }
  });
 }
  /**
   * GrideView的适配器
   */ 
 BaseAdapter adapter = new BaseAdapter() {
  @Override
  public int getCount() {
   return valueList.size();
  }
  @Override
  public Object getItem(int position) {
   return valueList.get(position);
  }
  @Override
  public long getItemId(int position) {
   return position;
  }
  @SuppressWarnings("deprecation")
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   ViewHolder viewHolder;
   if (convertView == null) {
    convertView = View.inflate(context, R.layout.item_gride, null);
    viewHolder = new ViewHolder();
    viewHolder.btnKey = (TextView) convertView
      .findViewById(R.id.btn_keys);
    convertView.setTag(viewHolder);
   } else {
    viewHolder = (ViewHolder) convertView.getTag();
   }
   viewHolder.btnKey.setText(valueList.get(position).get("name"));
   if (position == 9||position==11) {
    viewHolder.btnKey.setBackgroundDrawable(Utils.getStateListDrawable(context));
    viewHolder.btnKey.setEnabled(false);
   }
   if (position == 11) {
    viewHolder.btnKey.setBackgroundDrawable(Utils.getStateListDrawable(context));
   }
   return convertView;
  }
 };
 
 
 /**
  * 存放控件
  */
 public final class ViewHolder {
  public TextView btnKey;
 }</string>
안드로이드 고도모조 WeChat 결제 비밀번호 입력 제어 예시 코드시뮬레이트된 키보드의 데이터를 0-9 및 x로 로드한 다음 이 데이터를 어댑터를 통해 Gridview 컨트롤에 채웁니다. 키보드는 화면 하단에서 그려야 합니다. 여기서 하는 작업은 팝업 창에 Gridview를 연결한 다음 화면 하단에서 팝업하는 것입니다.
View contentView = LayoutInflater.from(context).inflate(
    R.layout.layout_popupdemo, null);// 定义后退弹出框
  gridView = (GridView) contentView.findViewById(R.id.gv_keybord);// 泡泡窗口的布局 
 popupWindow = new PopupWindow(contentView,
    ViewGroup.LayoutParams.MATCH_PARENT,// width
    ViewGroup.LayoutParams.WRAP_CONTENT);// higth
  popupWindow.setFocusable(false);
  popupWindow.setAnimationStyle(R.style.animation);
   //从底部弹出
  public void show() {
  popupWindow.showAtLocation(rl_bottom, Gravity.BOTTOM, 0, 0); // 确定在界面中出现的位置
 }
 @Override
 public void onWindowFocusChanged(boolean hasWindowFocus) {
  super.onWindowFocusChanged(hasWindowFocus);
  show();
 }

이 컨트롤이 로드되면 팝업이 나타납니다. >

마지막으로 우리가 해야 할 일은 시뮬레이션된 키보드를 모니터링하고 이 시뮬레이션된 키보드의 입력을 비밀번호 상자에 입력하는 것입니다. , 실제로는 Gridview의 onitemclick 이벤트를 모니터링하기 위한 것입니다.

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView> parent, View view,
     int position, long id) {
    if (position = -1 && currentIndex = -1) { // 判断是否删除完毕————要小心数组越界
       tvList[currentIndex--].setText("");
      }
     }
    }
   }
  });
사용자가 0~9의 숫자를 클릭하면 비밀번호 상자에 채워집니다. 사용자가 백스페이스 키를 클릭하면 해당 비밀번호 상자의 내용이 삭제됩니다. 참고로, 위에서 사용한 텍스트 상자 배열 목록이 전송됩니다. 여기에서 코드를 사용하여 스타일을 설정하세요.

// 设置监听方法,在第6位输入完成后触发
 public void setOnFinishInput(final OnPasswordInputFinish pass) {
  tvList[5].addTextChangedListener(new TextWatcher() {
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count,
     int after) {
   }
   @Override
   public void onTextChanged(CharSequence s, int start, int before,
     int count) {
   }
   @Override
   public void afterTextChanged(Editable s) {
    if (s.toString().length() == 1) {
     strPassword = ""; // 每次触发都要先将strPassword置空,再重新获取,避免由于输入删除再输入造成混乱
     for (int i = 0; i 수많은 노력 끝에 최종 결과는 다음과 같습니다. <p style="text-align: left;"></p> <p style="text-align: left;"></p>

위 내용은 안드로이드 고도모조 WeChat 결제 비밀번호 입력 제어 예시 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.