Как установить слушателя смены фокуса на динамически создаваемый текст редактирования на Android? - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу создать два поля: одно TextView и одно EditField в моем приложении.Прямо сейчас это происходит через одну кнопку успешно с setOnClickListener.Когда кнопка нажата, TextView и EditField создаются в нижней части другого.Часть кода выглядит следующим образом:

MainActivity.java

    public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
        private GridLayout mlayout;
        Button additem;
        DynamicViews dnv;
        Context context;
        int f=0;
        int counter = 2;
        View view;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            mlayout = (GridLayout) findViewById(R.id.mylayout);
            additem = (Button) findViewById(R.id.addButton);

            additem.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    addView(view);
                    counter+=2;
                }
            });
        }
        public void addView (View view)
        {
            this.view=view;
            f=f+1;
            dnv = new DynamicViews(context);
            mlayout.addView(dnv.descriptopionTextView(getApplicationContext(),Integer.toString(f)),counter);
            mlayout.addView(dnv.receivedQuantityEditText(getApplicationContext()),counter+1);

        }

DynamicViews.java

public class DynamicViews {
    Context ctx;

    public DynamicViews(Context ctx) {
        this.ctx = ctx;
    }

    public TextView descriptopionTextView(Context context,String text) {

        final ViewGroup.LayoutParams lParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        final TextView textView = new TextView(context);
        textView.setLayoutParams(lParams);
        textView.setTextSize(16);
        textView.setTypeface(null, Typeface.BOLD);
        textView.setTextColor(Color.rgb(255,255,255));
        textView.setText(" "+ text+". ");

        return textView;

    }

    public EditText receivedQuantityEditText(Context context) {

        final ViewGroup.LayoutParams lParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        final EditText editText = new EditText(context);
        int id = 0;
        editText.setId(id);
        editText.setTextSize(16);
        editText.setTextColor(Color.rgb(255,255,255));
        editText.setInputType(TYPE_CLASS_NUMBER);
        return editText;

    }
}

Как можно создать два новых поля TextViewи EditField каждый раз, когда пользователь нажимает, ввести последний EditField, который был динамически создан "и" это поле не равно нулю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...