我嘗試創建自己的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) 如果有人知道的解決方案,請幫助我 感謝大家
日誌打印什麼?從您的註釋行中,我可以看到您正在嘗試將文本設置爲LinearLayout而不是其中的子項。這是你的情況嗎? –
請具體說明您需要什麼。 –
@RushiAyyappa Ayyappa謝謝我解決了我的問題set/get Tag – donoachua