Страница 4 из 4
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 13 дек 2014, 19:34
Foenix
я не очень тебя понимаю, Но мне кажется, ты смешиваешь визуальное представление и сами данные. Данные - это одно, а их визуальное представление - другое. Активность или фрагмент - это шаблон, средство для отображения данных и не более того.
И думаю тебе нужно воспользоваться фрагментами в данной ситуации.
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 14 янв 2015, 13:21
Imar
выполняю ваши уроки в android studio.
какой class import выбрать для LinearLayout или я что то не так делаю?
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 13 мар 2015, 14:50
NovikPY
Imar писал(а):выполняю ваши уроки в android studio.
какой class import выбрать для LinearLayout или я что то не так делаю?
В AS немного отличается код от описанного кода в Eclipse, но суть одна и та же, посмотрите видео к уроку, там наглядно показывается из чего состоит экран, довольно просто и понятно.
В Android Studio Вам нужно импортировать
Код: Выделить всё
import android.view.ViewGroup;
import android.widget.LinearLayout;
Получается при создании LinearLayout у Вас будет просто:
Код: Выделить всё
LinearLayout linLayout = new LinearLayout(this);
А при создании параметров:
Код: Выделить всё
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
Чуть больше кода на первый взгляд, но благодаря AS, Вам и писать все это почти не придется, Studio все допишет за Вас
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 30 апр 2015, 17:23
wtor
Способ интересный, но зачем выводить программно, если легче через main.xml?
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 30 апр 2015, 17:59
doter.ua
wtor писал(а):Способ интересный, но зачем выводить программно, если легче через main.xml?
Наверно потому, что название урока "Программное создание экрана"
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 01 июн 2015, 20:45
miha10999
Всем привет! помогите пожалуйста. Входе изучения уроков задался вопросом "Как сделать по нажатию на кнопку автоматическое создание нескольких других элементов например TextView"
и как сделать их создание с отступом вниз(чтобы каждый элемент в отдельной строчке). В моем примере они выводятся последовательно в одной строке.
public class MainActivity extends Activity implements OnClickListener {
int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
List<TextView> textVilist;
LinearLayout llMain;
Button btn;
TextView tvVopros;
LinearLayout.LayoutParams lParams;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
llMain = (LinearLayout) findViewById(R.id.linLayout);
// setContentView()
textVilist = new ArrayList<TextView>();
tvVopros = (TextView)findViewById(R.id.textView);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int j = f1(3);
int otstup = 0;
switch (v.getId()) {
case R.id.button :
lParams = new LinearLayout.LayoutParams(wrapContent, wrapContent);
tvVopros.setText("Вопрос №1");
for (int i = 0; i < j; i++) {
TextView tv = new TextView(this);
//tv.setId(i);
tv.setText("Ответ№+"+ i +" ");
textVilist.add(i, tv);
otstup+=25;
lParams.topMargin=otstup;
lParams.leftMargin=10;
llMain.addView(tv,lParams);
;
}
break;
}
}
public int f1(int i)
{
return i;
}
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 01 июн 2015, 20:47
doter.ua
У LinearLayout должен быть orientation vertical
layout.setOrientation(LinearLayout.VERTICAL);
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 02 июн 2015, 18:01
miha10999
Спасибо! оказалось все просто
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 17 июл 2015, 10:51
Vasyabest
Ребят, только начинаю разбираться, может кто подскажет. Есть у меня простой проект HelloWorld, из примера, подключил я к нему другой сложный проект smms, как модуль. Каким образом мне из моего HelloWorld проекта, запустить smms?
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 27 окт 2015, 22:18
Человек
Делаю в Android Studio 1.4. Вот код из MainActivity.java
Код: Выделить всё
package ru.blabla.libname;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.ContextMenu;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll, lp);
ViewGroup.LayoutParams lp2 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView tv = new TextView(this);
ll.addView(tv,lp2);
Button bt = new Button(this);
bt.setLayoutParams(lp2);
ll.addView(bt);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu m) {
getMenuInflater().inflate(R.menu.mymenu,m);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem it) {
return 5>4;
}
@Override
public boolean onPrepareOptionsMenu(Menu m){
return super.onPrepareOptionsMenu(m);
}
}
В результате пишет про ошибку в смартфоне.
Этот урок и предыдущие делал в одном модуле (чтоб времени не терять). Может из-за прошлых уроков конфликт возник.
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 04 дек 2015, 21:04
RomanAndreich
Человек писал(а):Делаю в Android Studio 1.4. Вот код из MainActivity.java
Код: Выделить всё
package ru.blabla.libname;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.ContextMenu;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll, lp);
ViewGroup.LayoutParams lp2 = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView tv = new TextView(this);
ll.addView(tv,lp2);
Button bt = new Button(this);
bt.setLayoutParams(lp2);
ll.addView(bt);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu m) {
getMenuInflater().inflate(R.menu.mymenu,m);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem it) {
return 5>4;
}
@Override
public boolean onPrepareOptionsMenu(Menu m){
return super.onPrepareOptionsMenu(m);
}
}
В результате пишет про ошибку в смартфоне.
Этот урок и предыдущие делал в одном модуле (чтоб времени не терять). Может из-за прошлых уроков конфликт возник.
Если для вас еще актуально. Удалите XML файлы и студия вам подскажет какие строчки кода нужно убрать что-бы работало. =)
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 23 фев 2016, 18:21
seamoon
icamys ваше изображение схемы, к сожалению, не открывается
Добавлено: 20 сен 2018, 06:57
levgilman
Что такое LayoutParams, когда слева нет класса и точки? Это по директиве вроде uses или что там в Джаве? А тут как назло в код урока не включены импорты и что ещё там должно быть.
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 06 июл 2021, 22:22
Денис87
Кнопка обязательно прописывается как Button btn или можно писать просто Button? Извините ежели что , начал изучение ваших уроков буквально вчера.
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 08 янв 2022, 10:50
andreii
Для Button1 kotlin:
val linLayout = LinearLayout(this)
linLayout.orientation = LinearLayout.VERTICAL
linLayout.layoutParams = LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT)
setContentView(linLayout)
...
val leftMarginParams = LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT)
leftMarginParams.leftMargin = 50
val btn1 = Button(this)
btn1.text = "Button1"
linLayout.addView(btn1, leftMarginParams)
Re: Урок 16. Программное создание экрана. LayoutParams
Добавлено: 25 фев 2022, 11:57
fat_fly
package com.example.p0161_dynamiclayout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout liLay = new LinearLayout(this);
}
}
//если нужно явно указать контекст в этой строке "LinearLayout liLay = new LinearLayout(this);" на что в данном случае указывает слово "this"?