Создание класса java

Ответить
emmure
Сообщения: 4
Зарегистрирован: 19 июн 2015, 20:53

Создание класса java

Сообщение emmure » 20 июн 2015, 19:51

Здравствуйте, хотел создать класс с 3 аргументами (LinearLayout, ImageView,EditText)

Код: Выделить всё

class obLayout extends Activity
{
    LinearLayout linLayout;
    ImageView imgNew;
    EditText edText;
    obLayout (EditText edText)
    {
        this.linLayout = new LinearLayout(this);
        this.linLayout.setOrientation(LinearLayout.VERTICAL);
        this.imgNew =  new ImageView(this);
        this.imgNew.setImageDrawable(getResources().getDrawable(R.drawable.ic_alarm_on_black_36dp));
        this.edText = new EditText(this);
        this.edText.setText(edText.getText().toString());
        this.linLayout.addView(imgNew);
        this.linLayout.addView(edText);
    }

}
По сути это LinearLayout внутри которого картинка и текст
Но при создании элемента класса приложение завершается ошибкой

Код: Выделить всё

  
obLayout myLayout = new obLayout(etTime);//etTime - переменная типа EditText

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Создание класса java

Сообщение rezak90 » 21 июн 2015, 13:27

Что то такой бред написан))) Зачем наследоваться от активити то?
R.id.team
Политика на форуме запрещена

emmure
Сообщения: 4
Зарегистрирован: 19 июн 2015, 20:53

Re: Создание класса java

Сообщение emmure » 21 июн 2015, 17:31

Если честно, я понимаю что ерунда написана, т.к не могу до конца разобраться. Насколько я понимаю, в конструкторе надо выделить память при создании переменных linLayout,imgNew и edText. Но я не до конца понимаю эту конструкцию в java , а именно this.linLayout = new LinearLayout(this); что значит второе this. Просто если не от чего не наследовать он будет подчёркнут. Можете объяснить или ссылку какую нибудь дать где это объяснено.

emmure
Сообщения: 4
Зарегистрирован: 19 июн 2015, 20:53

Re: Создание класса java

Сообщение emmure » 21 июн 2015, 17:52

По итогу я пришёл к этому

Код: Выделить всё

class obLayout 
{
    LinearLayout linLayout;
    ImageView imgNew;
    EditText edText;
    obLayout (EditText edText,LinearLayout linLayout,ImageView imgNew)
    {
        this.linLayout = linLayout;
        this.linLayout.setOrientation(LinearLayout.VERTICAL);
        this.imgNew =  imgNew;
        this.edText =  edText;
        //рамка
        TableRow.LayoutParams param = new TableRow.LayoutParams();
        this.linLayout.setBackgroundResource(R.drawable.custom_border);
        this.linLayout.addView(this.imgNew);
        this.linLayout.addView(this.edText);

    }

}
то есть память выделяю уже в основной функции, и передаю эти переменные как параметры конструктору но я не уверен что это правильно.

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Создание класса java

Сообщение rezak90 » 22 июн 2015, 01:31

Конечно это все не правильно, ни подход, ни конструкция... все))) Почитай что такое композитные и кастомные вью.
R.id.team
Политика на форуме запрещена

Ответить