Урок 16. Программное создание экрана. LayoutParams
Re: Урок 16. Программное создание экрана. LayoutParams
я не очень тебя понимаю, Но мне кажется, ты смешиваешь визуальное представление и сами данные. Данные - это одно, а их визуальное представление - другое. Активность или фрагмент - это шаблон, средство для отображения данных и не более того.
И думаю тебе нужно воспользоваться фрагментами в данной ситуации.
И думаю тебе нужно воспользоваться фрагментами в данной ситуации.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 16. Программное создание экрана. LayoutParams
выполняю ваши уроки в android studio.
какой class import выбрать для LinearLayout или я что то не так делаю?
какой class import выбрать для LinearLayout или я что то не так делаю?
Re: Урок 16. Программное создание экрана. LayoutParams
В AS немного отличается код от описанного кода в Eclipse, но суть одна и та же, посмотрите видео к уроку, там наглядно показывается из чего состоит экран, довольно просто и понятно.Imar писал(а):выполняю ваши уроки в android studio.
какой class import выбрать для LinearLayout или я что то не так делаю?
В Android Studio Вам нужно импортировать
Код: Выделить всё
import android.view.ViewGroup;
import android.widget.LinearLayout;
Код: Выделить всё
LinearLayout linLayout = new LinearLayout(this);
Код: Выделить всё
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
Re: Урок 16. Программное создание экрана. LayoutParams
Способ интересный, но зачем выводить программно, если легче через main.xml?
Re: Урок 16. Программное создание экрана. LayoutParams
Наверно потому, что название урока "Программное создание экрана"wtor писал(а):Способ интересный, но зачем выводить программно, если легче через main.xml?
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 16. Программное создание экрана. LayoutParams
Всем привет! помогите пожалуйста. Входе изучения уроков задался вопросом "Как сделать по нажатию на кнопку автоматическое создание нескольких других элементов например 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;
}
и как сделать их создание с отступом вниз(чтобы каждый элемент в отдельной строчке). В моем примере они выводятся последовательно в одной строке.
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
У LinearLayout должен быть orientation vertical
layout.setOrientation(LinearLayout.VERTICAL);
layout.setOrientation(LinearLayout.VERTICAL);
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 16. Программное создание экрана. LayoutParams
Спасибо! оказалось все просто
Re: Урок 16. Программное создание экрана. LayoutParams
Ребят, только начинаю разбираться, может кто подскажет. Есть у меня простой проект HelloWorld, из примера, подключил я к нему другой сложный проект smms, как модуль. Каким образом мне из моего HelloWorld проекта, запустить smms?
Re: Урок 16. Программное создание экрана. LayoutParams
Делаю в 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);
}
}
Этот урок и предыдущие делал в одном модуле (чтоб времени не терять). Может из-за прошлых уроков конфликт возник.
-
- Сообщения: 1
- Зарегистрирован: 19 мар 2013, 07:59
Re: Урок 16. Программное создание экрана. LayoutParams
Если для вас еще актуально. Удалите XML файлы и студия вам подскажет какие строчки кода нужно убрать что-бы работало. =)Человек писал(а):Делаю в 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
icamys ваше изображение схемы, к сожалению, не открывается
Re: Урок 16. Программное создание экрана. LayoutParams
Кнопка обязательно прописывается как Button btn или можно писать просто Button? Извините ежели что , начал изучение ваших уроков буквально вчера.
Re: Урок 16. Программное создание экрана. LayoutParams
Для 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)
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
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"?
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"?