0

我嘗試創建自己的PinView.i創建它,但我有一個問題。我嘗試解釋我的問題 我創建了四個文字瀏覽並將其添加到了Linearlayout中,並且此linearlayout添加了我的容器(佈局女巫我有我的XML文件)。現在我想從我的fontainer.this讓我childview是sturcure我的觀點Android從Linearlayout獲取childview

<container> 
<wapContainer> 
<Textview> 


</Textview> 
</wapContainer> 
<container> 

這是我的源

private void addView(final LinearLayout childView) { 
    // Add a digit view for each digit 

    inputValue.setBackgroundColor(getResources().getColor(android.R.color.transparent)); 
    inputValue.setTextColor(getResources().getColor(android.R.color.transparent)); 
    inputValue.setCursorVisible(false); 


    inputValue.setFilters(new InputFilter[]{new InputFilter.LengthFilter(mDigits)}); 
    inputValue.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD); 

    inputValue.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI); 
    inputValue.setOnFocusChangeListener(new OnFocusChangeListener() { 
     @Override 
     public void onFocusChange(View v, boolean hasFocus) { 
      // Update the selected state of the views 
      int length = inputValue.getText().length(); 
      for (int i = 0; i < mDigits; i++) { 
       childView.getChildAt(i).setSelected(hasFocus && (mAccentType == ACCENT_ALL || 
         (mAccentType == ACCENT_CHARACTER && (i == length || 
           (i == mDigits - 1 && length == mDigits))))); 
      } 

      if (mOnFocusChangeListener != null) { 
       mOnFocusChangeListener.onFocusChange(CustomPinConfirmView.this, hasFocus); 
      } 
     } 
    }); 

    for (int i = 0; i < mDigits; i++) { 
     DigitView digitView = new DigitView(getContext()); 
     digitView.setLayoutParams(new LinearLayout.LayoutParams(valueInPixels, valueInPixels)); 
     wapContainer = new LinearLayout(mContext); 
     wapContainer.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 5f/mDigits)); 
     wapContainer.setGravity(Gravity.CENTER); 
     digitView.setTextColor(Color.WHITE); 
     digitView.setTextSize(pxFromDp(14, mContext)); 

     digitView.setGravity(Gravity.CENTER); 
     mWidgets.add(digitView); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      digitView.setElevation(mDigitElevation); 
     } 
     wapContainer.addView(digitView); 
     childView.addView(wapContainer); 
    } 




    inputValue.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) { 

      int length = s.length(); 
      for (int i = 0; i < mDigits; i++) { 
       if (s.length() > i) { 
        String mask = mMask == null || mMask.length() == 0 ? 
          String.valueOf(s.charAt(i)) : mMask; 

        if(childView.getChildAt(i) instanceof LinearLayout) 
        { 
         Log.e("Taggggggggggg",childView.getChildCount() +""); 
         Log.e("Taggggggggggg",childView.getClass().getSimpleName() + " " + childView.getClass().getSimpleName().length()); 
         //((TextView) childView.getChildAt(i)).setText(mask); 
        } 
       } 
       else { 

       } 

      } 

     } 
    }); 
} 

,你可以看到我可以登錄我的wapContainer女巫我編程創建,但我不能(我不知道)如何讓wapContainer的childView(我textviews) 如果有人知道的解決方案,請幫助我 感謝大家

+0

日誌打印什麼?從您的註釋行中,我可以看到您正在嘗試將文本設置爲LinearLayout而不是其中的子項。這是你的情況嗎? –

+0

請具體說明您需要什麼。 –

+0

@RushiAyyappa Ayyappa謝謝我解決了我的問題set/get Tag – donoachua

回答

0

通常的方式做,這是一個ID設置爲您的TextView。

然後使用findViewById()獲取對它的引用。

希望這會有所幫助。

+0

謝謝我解決了我的問題set/get Tag @Nanoc – donoachua

+0

是的,你也可以使用findViewByTag() – Nanoc