У меня есть пользовательская кнопка с настраиваемым свойством XML string watch_enable
, которое является именем EditText. В конструкторе кнопки я хочу прочитать это свойство и получить EditText с этим именем.Разметка активности надувания в конструкторе пользовательских представлений
Я использую мои пользовательские кнопки, как:
<EditText
android:id="@+id/edit_login_password"
android:inputType="textPassword"
android:text=""/>
<my.project.widgets.WatchingButton
android:text="Enter"
app:watch_enable="edit_login_password"/>
И это класс моей кнопки:
public WatchingButton(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray attributes = context.obtainStyledAttributes(attrs, R.styleable.WatchingButton);
for (int i = 0; i < attributes.getIndexCount(); i++) {
int attribute = attributes.getIndex(i);
if (attribute == R.styleable.WatchingButton_watch_enable) {
String value = attributes.getString(attribute); //<-- OK, value is edit_text_username
int idEdittext = context.getResources().getIdentifier(value, "id", context.getPackageName()); //<-- OK, I obtain the resource ID
Activity activity = (Activity) context;
EditText et = (EditText)((Activity)context).findViewById(idEditText); //<-- Error. et is null.
//DO STUFF
}
}
}
Я предполагаю, что деятельность еще не завышены, и я не могу получить вид на от него. Что я могу сделать?
Спасибо.
Пожалуйста, покажите ошибку вы получаете –
Просто я не могу EditText 'et', вместо этого я получаю нуль. –
'WatchingButton extends Button' или' WatchingButton extends View' или 'WatchingButton расширяет ViewGroup'? –