Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 19 июл 2019, 07:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.
Автор Сообщение
СообщениеДобавлено: 19 сен 2011, 03:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
В этом уроке мы:

- добавляем компоненты на экран прямо из приложения

Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 28 апр 2017, 10:54, всего редактировалось 9 раз(а).

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 янв 2012, 15:39 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
Цитата:
после строки llMain.addView(btnNew, lParams);
можно дописать etName.setText(null);
чтобы текстовое поле очищалось после создания каждой кнопки.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 19 янв 2012, 01:08 

Зарегистрирован: 19 янв 2012, 00:59
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Отличный урок) Спасибо
У себя добавил проверку на то чтобы кнопок было не больше 6) а то они дальше не лезут(3.2" экран)) а ScrolView почему-то не получилось использовать. Еще добавил имена кнопок по дефолту, в моем случае Button1-6

И возник вопрос, как сделать проверку на то чтобы строка не была пустой?
Код: [ Загрузить ] [ Скрыть ]
  1. if(etName.getText() != null){...}  
не дало результата как и
Код: [ Загрузить ] [ Скрыть ]
  1. if(etName.getText().toString() != null){...} 


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 19 янв 2012, 11:50 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
MADSMILEXD писал(а):
как сделать проверку на то чтобы строка не была пустой?


С помощью TextUtils.isEmpty можно
http://developer.android.com/reference/android/text/TextUtils.html#isEmpty(java.lang.CharSequence)

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 янв 2012, 00:39 

Зарегистрирован: 19 янв 2012, 00:59
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
к сожалению с этим разобраться не получилось, воспользовался таким
Код: [ Загрузить ] [ Скрыть ]
  1. if(etName.length() != 0){...}else{...} 


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 янв 2012, 15:05 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
Посмотрите урок 19, про калькулятор. Там я этим способом делаю проверку на пустоту полей.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 фев 2012, 00:21 

Зарегистрирован: 16 фев 2012, 00:11
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. case R.id.rbLeft:
  2. btnGravity = Gravity.LEFT;
  3. break;

тут создается объект btnGravity, в нее записывается положение RadioGroup, затем lParams.gravity = btnGravity;
Можно немного уменьшить код и потребление памяти, если прямо в case R.id.rbLeft: делать вместо
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. btnGravity = Gravity.LEFT;

вот это:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. lParams.gravity = Gravity.LEFT;


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 мар 2012, 15:51 
Аватар пользователя

Зарегистрирован: 02 мар 2012, 18:33
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Отдельно спасибо за настройку "Android Keyboard" ))))))


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 26 мар 2012, 19:51 

Зарегистрирован: 26 мар 2012, 19:38
Сообщений: 15
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Цитата:
Я также создал переменную wrapContent и буду хранить в ней значение LinearLayout.LayoutParams.WRAP_CONTENT. Делаю это только для снижения громоздкости кода.

Я не совсем понял, зачем Вы здесь используете LinearLayout.LayoutParams.WRAP_CONTENT? если все скодили уже в main.xml

И еще такой вопросик относящийся к 16 уроку по поводу LayoutParams. Вот ViewGroup.LayoutParams это тоже самое что и LinearLayout в main.xml? и на сколько программный метод лучше не программного?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 мар 2012, 08:55 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
patalaka писал(а):
Я не совсем понял, зачем Вы здесь используете LinearLayout.LayoutParams.WRAP_CONTENT? если все скодили уже в main.xml


Когда я добавляю новый View-компонент (btnNew), я должен указать для него ширину и высоту (wrap_content в данном случае). Иначе он просто не будет знать как ему отображаться - растянуться на всю ширину/высоту родительского элемента или принять ширину/высоту по значению.

А в main.xml все настроено только для тех компонентов, которые в нем указаны.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 мар 2012, 09:09 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
patalaka писал(а):
Вот ViewGroup.LayoutParams это тоже самое что и LinearLayout в main.xml? и на сколько программный метод лучше не программного?


LayoutParams - это набор свойств для View-компонента (высота, ширина, ...). Эти свойства будут определять как компонент будет размещен в ViewGroup. Я в уроке показал, что View-компонент, находящийся в LinearLayout имеет один набор layout-параметров, а находящийся в RelativeLayout – другой набор. Это происходит потому, что LayoutParams для компонента определяются родительским компонентом ViewGroup. Для LinearLayout - это LinearLayout.LayoutParams (вложенный класс), а для RelativeLayout - RelativeLayout.LayoutParams (вложенный класс).

Соответственно LinearLayout - это ViewGroup, которая позволяет размещать в себе элементы, а LinearLayout.LayoutParams - правила, по которым они будут размещены.

ViewGroup.LayoutParams - это базовый класс, для остальных LayoutParams.

Программный способ не то, что бы лучше. Он просто позволяет сделать более гибкие вещи во время выполнения программы. А если экран статичен, то гораздо проще использовать layout-файлы.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 мар 2012, 14:33 

Зарегистрирован: 26 мар 2012, 19:38
Сообщений: 15
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
спасибо :) теперь все более понятно


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 14 май 2012, 23:56 

Зарегистрирован: 14 май 2012, 23:41
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Доброго времени суток. Не подскажете, в чем проблема? Очень хочу, что-бы TextView message добавилось в my_list по нажатию кнопки save.

main.xml

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:id ="@+id/suka"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="wrap_content"
  6.     android:orientation="vertical" >
  7.  
  8.         <EditText
  9.             android:id = "@+id/input_text"
  10.         android:layout_width="fill_parent"
  11.         android:layout_height="wrap_content"
  12.         android:inputType = "text" />
  13.  
  14.     <TextView
  15.         android:id = "@+id/tv_x"
  16.         android:layout_width="fill_parent"
  17.         android:layout_height="wrap_content"
  18.         android:textSize="100dp" />
  19.     <LinearLayout
  20.         xmlns:android="http://schemas.android.com/apk/res/android"
  21.         android:layout_width="fill_parent"
  22.         android:layout_height="wrap_content"
  23.         android:orientation="horizontal" >
  24.  
  25.         <Button
  26.             android:id="@+id/button1"
  27.             android:layout_width="wrap_content"
  28.             android:layout_height="wrap_content"
  29.             android:text="@string/save_score" />
  30.  
  31.         <Button
  32.             android:id="@+id/button2"
  33.             android:layout_width="wrap_content"
  34.             android:layout_height="wrap_content"
  35.             android:text="@string/clear" />
  36.         <Button
  37.             android:id="@+id/button3"
  38.             android:layout_width="fill_parent"
  39.             android:layout_height="wrap_content"
  40.             android:text="@string/plus_one" />
  41.  
  42.     </LinearLayout>
  43.     <LinearLayout
  44.         xmlns:android="http://schemas.android.com/apk/res/android"
  45.         android:id="@+id/my_list"
  46.         android:layout_width="fill_parent"
  47.         android:layout_height="wrap_content"
  48.         android:orientation="vertical" >
  49.        
  50.     </LinearLayout>
  51.    
  52. </LinearLayout>


.java файл


Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. package com.danja;
  2.  
  3. import android.app.Activity;
  4. import android.view.View;
  5. import android.widget.EditText;
  6. import android.widget.LinearLayout;
  7. import android.widget.TextView;
  8. import android.widget.Button;
  9. import android.view.View.OnClickListener;
  10. import android.os.Bundle;
  11.  
  12. public class My_first_app_Activity extends Activity {
  13.     /** Called when the activity is first created. */
  14.         public TextView text;
  15.         public TextView message;
  16.         public EditText input_text;
  17.        
  18.         public LinearLayout my_list;
  19.        
  20.         public Button plus_button;
  21.         public Button clear_button;
  22.         public Button save_button;
  23.        
  24.         public OnClickListener plus_click;
  25.         public OnClickListener clear_click;
  26.         public OnClickListener save_click;
  27.        
  28.         int total_count = 0;
  29.         int wrapContent = LinearLayout.LayoutParams.WRAP_CONTENT;
  30.        
  31.         @Override
  32.     public void onCreate(Bundle savedInstanceState) {
  33.         super.onCreate(savedInstanceState);
  34.        
  35.         setContentView(R.layout.main);
  36.        
  37.         input_text = (EditText)findViewById(R.id.input_text);    
  38.         text = (TextView)findViewById(R.id.tv_x);
  39.        
  40.         my_list = (LinearLayout)findViewById(R.id.my_list);
  41.            
  42.         save_button = (Button)findViewById(R.id.button1);
  43.         clear_button = (Button)findViewById(R.id.button2);
  44.         plus_button = (Button)findViewById(R.id.button3);
  45.        
  46.         text.setText("" + total_count + "");
  47.                
  48.         plus_click = new OnClickListener() {
  49.             public void onClick(View v) {
  50.               total_count++;
  51.               text.setText("" + total_count + "");
  52.             }
  53.         };
  54.         clear_click = new OnClickListener() {
  55.                 public void onClick(View v) {
  56.                         total_count = 0;
  57.                         text.setText("" + total_count + "");
  58.                 }
  59.         };
  60.         save_click = new OnClickListener() {
  61.                 public void onClick(View v) {
  62.                        
  63.                 LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(wrapContent, wrapContent);
  64.                
  65.                 message.setText("asdasda");
  66.                 message.setLayoutParams(lParams);
  67.                 my_list.addView(message, lParams);     
  68.                
  69.                 }
  70.         };
  71.         plus_button.setOnClickListener(plus_click);
  72.         clear_button.setOnClickListener(clear_click);
  73.         save_button.setOnClickListener(save_click);
  74.        
  75.     }
  76. }
  77.  


Ну никак не хочет добавляться message в my_list :(

Заранее, спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 май 2012, 10:34 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
i00lii писал(а):
Очень хочу, что-бы TextView message добавилось в my_list по нажатию кнопки save. Ну никак не хочет добавляться message в my_list :(


Обратите внимание на объект message. Вы его нигде не создаете, но пытаетесь присвоить ему текст и добавить на экран. Приложение валится.

Надо создавать объект:
Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. message = new TextView(My_first_app_Activity.this);

в save_click перед setText, setLayoutParams и пр.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 май 2012, 19:48 

Зарегистрирован: 14 май 2012, 23:41
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо за помощь. Просто я думал, что объявив поле в начале, уладил все формальности. :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 май 2012, 15:35 

Зарегистрирован: 20 май 2012, 15:33
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здраствуйте...интересный вопрос - если сменить ориентацию, то динамические обекты исчезают...как сохранить новосозданую иерархию Views


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 май 2012, 19:45 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
При повороте экрана Activity уничтожается и пересоздается заного, все элементы, созданные во время ее работы, пропадут. Отменить пересоздание можно в файле манифеста, в свойствах активности: android:configChanges="orientation"

_________________
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 май 2012, 11:34 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
DenBond7 писал(а):
Здраствуйте...интересный вопрос - если сменить ориентацию, то динамические обекты исчезают...как сохранить новосозданую иерархию Views


Урок 70 рассказывает, как быть при повороте. Иерархию Views (если она отлична от layout-файла) я думаю придется заново создавать после поворота.

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 июн 2012, 22:13 
Аватар пользователя

Зарегистрирован: 28 май 2012, 16:22
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Очепятка. Походу я первый внимательно прочитал :lol:

Цитата:
Рассмотрим подробно экран.

rgGravity – это RadoiGroup


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 июн 2012, 09:15 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1400
Благодарил (а): 0 раз.
Поблагодарили: 75 раз.
Flactor писал(а):
Очепятка. Походу я первый внимательно прочитал :lol:

Пасибо, пофиксил )

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 143 ]  На страницу 1, 2, 3, 4, 5 ... 8  След.

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB