public void newEditText(final String propertyName) { int top = (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics()); LayoutParams linearParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); LinearLayout linearLayout = new LinearLayout(context); linearLayout.setPadding(0, top, 0, 0); linearLayout.setLayoutParams(linearParams); linearLayout.setOrientation(LinearLayout.HORIZONTAL); ll.addView(linearLayout); TextInputLayout v = new TextInputLayout(context); LayoutParams textInputParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); v.setLayoutParams(textInputParams); linearLayout.addView(v); final EditText editText = new EditText(context); int width = (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics()); LayoutParams editTextParams = new LayoutParams(width, ViewGroup.LayoutParams.WRAP_CONTENT); editText.setLayoutParams(editTextParams); editText.setInputType(InputType.TYPE_CLASS_TEXT); v.setHint("Message"); v.addView(editText); // int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, // getResources().getDisplayMetrics()); // LayoutParams editTextParams = new LayoutParams(width, // ViewGroup.LayoutParams.WRAP_CONTENT); // final EditText editText = new EditText(context); // editText.setId(View.generateViewId()); // editText.setInputType(InputType.TYPE_CLASS_TEXT); // editText.setHint("Your Text"); // // editText.setLayoutParams(editTextParams); // // linearLayout.addView(editText); ImageButton button = new ImageButton(context); button.setImageResource(R.drawable.send); LayoutParams buttonParams = new LayoutParams(100, ViewGroup.LayoutParams.WRAP_CONTENT); button.setLayoutParams(buttonParams); button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { try { thing.setProperty(propertyName, editText.getText().toString()); thing.updateSubscribedProperties(500); } catch (Exception e) { e.printStackTrace(); } editText.clearFocus(); editText.setText(""); } }); linearLayout.addView(button); }
public void init(final Context context, AttributeSet attrs, int defStyleAttr) { FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); textInputLayout = new TextInputLayout(context); textInputLayout.setLayoutParams(params); String hint = attrs.getAttributeValue(ANDROID_NS, "hint"); if (hint != null) { textInputLayout.setHint(hint); } editText = new PermissionedEditText(context); editText.setSelectionListener(selectionListener); editText.setId(View.generateViewId()); editText.setLayoutParams(params); int inputType = attrs.getAttributeIntValue(ANDROID_NS, "inputType", EditorInfo.TYPE_NULL); if (inputType != EditorInfo.TYPE_NULL) { editText.setInputType(inputType); } textInputLayout.addView(editText, params); addView(textInputLayout); overlay = new FrameLayout(context); overlay.setLayoutParams( new FrameLayout.LayoutParams( LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT)); // overlay.setBackgroundColor(Color.BLACK); overlay.setBackgroundResource(R.drawable.permission_overlay_bg); overlay.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { Toast.makeText( getContext(), "This device does not have permission to view this field", 0) .show(); } return true; } }); overlay.setVisibility(GONE); TextView overlayLabel = new TextView(context); overlayLabel.setTextSize(24); overlayLabel.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); overlayLabel.setText(hint + " Unavailable"); overlay.addView(overlayLabel); addView(overlay); actionButton = new ImageView(context); IconDrawable drawable = new IconDrawable(context, MaterialIcons.md_check); drawable.color(Color.GREEN); actionButton.setImageDrawable(drawable); actionButton.setLayoutParams(new FrameLayout.LayoutParams(100, 100, Gravity.RIGHT)); actionButton.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: { ImageView view = (ImageView) v; view.getDrawable().setColorFilter(0x77000000, PorterDuff.Mode.SRC_ATOP); view.invalidate(); break; } case MotionEvent.ACTION_UP: if (permissionedTextListener != null) { int aId = 0; if (mPrimaryAction != null) { aId = mPrimaryAction.id; } permissionedTextListener.onAction(aId, PermissionedTextLayout.this); } case MotionEvent.ACTION_CANCEL: { ImageView view = (ImageView) v; view.getDrawable().clearColorFilter(); view.invalidate(); break; } } return true; } }); actionButton.setVisibility(GONE); addView(actionButton); }