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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 01 мар 2013, 11:04 

Зарегистрирован: 04 фев 2013, 12:10
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Спасибо! Недоглядел, надо быть внимательнее в след. раз


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 июн 2013, 14:51 
Аватар пользователя

Зарегистрирован: 29 июн 2013, 14:45
Сообщений: 4
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Напишите пожалуйста, в двух словах описание данного метода:

int i = Integer.parseInt(text);

Как я понимаю, берётся String-значение text из v (TextView) и конвертируется в Integer???

Спасибо


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 29 июн 2013, 15:06 

Зарегистрирован: 06 апр 2013, 14:01
Сообщений: 131
Благодарил (а): 4 раз.
Поблагодарили: 17 раз.
Именно так. Просто конвертируется строка в целое число.

Update: нет не так ) Значение не берется из v, параметр text мы передаем сами, это то, что мы хотим вставить в наш ViewText.


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

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
$01ny$hko писал(а):
Каким образом в следующей строчке
Код: [ Загрузить ] [ Скрыть ]
  1. public static final String[] ball = new String[] {"0 баллов", "+2 б.", "+1 б.", "5 б." }; 
можно вместо "0 баллов" вставить значение из preferences, сохранённое вот так?
Код: [ Загрузить ] [ Скрыть ]
  1. final String SaveBalance = "balance" 

rezak90 писал(а):
никак =)

А вот можно!
Приятная, маленькая хитрость массивов

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 авг 2013, 23:07 

Зарегистрирован: 04 окт 2012, 23:04
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код: [ Загрузить ] [ Скрыть ]
  1. img = (values[i] > 0) ? positive : negative; 

Объясните доступно код в этой строчке. Спасибо.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 авг 2013, 00:09 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
это такой хитрый оператор условия, чтоб не писать несколько строчек
http://javascript.ru/cond
т.е. если величина положительная в данной переменной (элемент массива) values[i] то присвоить переменной img значение переменной positive, а иначе записать в нее значение переменной negative

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 06 авг 2013, 00:13 
Аватар пользователя

Зарегистрирован: 09 янв 2012, 14:45
Сообщений: 2386
Откуда: Самара
Благодарил (а): 102 раз.
Поблагодарили: 321 раз.
Учите Java, господа.
Инная, я понимаю, что в JavaScript тоже самое, но людей можешь смутить данным действием =)

_________________
Изображение

А тот ли ты путь выбрал, разработчик?
Хочешь знать ошибки ответ? Загляни в logcat!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 авг 2013, 15:42 

Зарегистрирован: 20 авг 2013, 17:51
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
А в каких файлах проекта я могу посмотреть, как выглядят стандартные изображения? Например, android.R.drawable.arrow_down_float


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 25 авг 2013, 16:20 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
murray писал(а):
А в каких файлах проекта я могу посмотреть, как выглядят стандартные изображения? Например, android.R.drawable.arrow_down_float

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/res/res

_________________
R.id.team
Политика на форуме запрещена


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

Зарегистрирован: 01 ноя 2013, 15:45
Сообщений: 14
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Если в массиве данных values[] в качестве первого значения указать 0, то цвет текста и фон для него получаются синего или красного цвета. Ноль на другой позиции не дает такого эффекта. Избавился от этого явления инициализацией цвета, но почему так происходит не разобрался.
Код: [ Загрузить ] [ Скрыть ]
  1. public void setViewText(TextView v, String text) { 
  2.             // метод супер-класса, который вставляет текст 
  3.             super.setViewText(v, text); 
  4.             // если нужный нам TextView, то разрисовываем 
  5.             if (v.getId() == R.id.tvValue) { 
  6.                 int i = Integer.parseInt(text); 
  7.                 v.setTextColor(Color.WHITE); 
  8.                 if (i < 0) 
  9.                     v.setTextColor(Color.RED); 
  10.                 else if (i > 0) 
  11.                     v.setTextColor(Color.GREEN); 
  12.             } 
  13.         } 
  14.  
  15.         @Override 
  16.         public void setViewImage(ImageView v, int value) { 
  17.             // метод супер-класса 
  18.             super.setViewImage(v, value); 
  19.             // разрисовываем ImageView 
  20.             v.setBackgroundColor(Color.TRANSPARENT); 
  21.             if (value == negative) 
  22.                 v.setBackgroundColor(Color.RED); 
  23.             else if (value == positive) 
  24.                 v.setBackgroundColor(Color.GREEN); 
  25.         } 


Вложения:
shot.PNG
shot.PNG [ 55.53 KiB | Просмотров: 5898 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 02 ноя 2013, 23:18 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
где в коде массив values фигурирует? не вижу

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 04 ноя 2013, 10:28 

Зарегистрирован: 01 ноя 2013, 15:45
Сообщений: 14
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Foenix писал(а):
где в коде массив values фигурирует? не вижу

Я вставил только часть кода с моими исправлениями. Полный код вот:
Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends Activity { 
  2.  
  3.   // имена атрибутов для Map 
  4.   final String ATTRIBUTE_NAME_TEXT = "text"; 
  5.   final String ATTRIBUTE_NAME_VALUE = "value"; 
  6.   final String ATTRIBUTE_NAME_IMAGE = "image"; 
  7.  
  8.   // картинки для отображения динамики  
  9.   final int positive = android.R.drawable.arrow_up_float; 
  10.   final int negative = android.R.drawable.arrow_down_float; 
  11.    
  12.   ListView lvSimple; 
  13.  
  14.   /** Called when the activity is first created. */ 
  15.   public void onCreate(Bundle savedInstanceState) { 
  16.     super.onCreate(savedInstanceState); 
  17.     setContentView(R.layout.main); 
  18.  
  19.     // массив данных 
  20.     int[] values = { 8, 4, -3, 2, -5, 0, 3, -6, 1, -1 }; 
  21.  
  22.     // упаковываем данные в понятную для адаптера структуру 
  23.     ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>( 
  24.         values.length); 
  25.     Map<String, Object> m; 
  26.     int img = 0; 
  27.     for (int i = 0; i < values.length; i++) { 
  28.       m = new HashMap<String, Object>(); 
  29.       m.put(ATTRIBUTE_NAME_TEXT, "Day " + (i + 1)); 
  30.       m.put(ATTRIBUTE_NAME_VALUE, values[i]); 
  31.       if (values[i] == 0) img = 0; else 
  32.         img = (values[i] > 0) ? positive : negative; 
  33.       m.put(ATTRIBUTE_NAME_IMAGE, img); 
  34.       data.add(m); 
  35.     } 
  36.  
  37.     // массив имен атрибутов, из которых будут читаться данные 
  38.     String[] from = { ATTRIBUTE_NAME_TEXT, ATTRIBUTE_NAME_VALUE, 
  39.         ATTRIBUTE_NAME_IMAGE }; 
  40.     // массив ID View-компонентов, в которые будут вставлять данные 
  41.     int[] to = { R.id.tvText, R.id.tvValue, R.id.ivImg }; 
  42.  
  43.     // создаем адаптер 
  44.     MySimpleAdapter sAdapter = new MySimpleAdapter(this, data, 
  45.         R.layout.item, from, to); 
  46.  
  47.     // определяем список и присваиваем ему адаптер 
  48.     lvSimple = (ListView) findViewById(R.id.lvSimple); 
  49.     lvSimple.setAdapter(sAdapter); 
  50.   } 
  51.  
  52.   class MySimpleAdapter extends SimpleAdapter { 
  53.  
  54.     public MySimpleAdapter(Context context, 
  55.         List<? extends Map<String, ?>> data, int resource, 
  56.         String[] from, int[] to) { 
  57.       super(context, data, resource, from, to); 
  58.     } 
  59.  
  60.     @Override 
  61.     public void setViewText(TextView v, String text) { 
  62.       // метод супер-класса, который вставляет текст 
  63.       super.setViewText(v, text); 
  64.       // если нужный нам TextView, то разрисовываем  
  65.       if (v.getId() == R.id.tvValue) { 
  66.         int i = Integer.parseInt(text); 
  67.         if (i < 0) v.setTextColor(Color.RED); else 
  68.           if (i > 0) v.setTextColor(Color.GREEN); 
  69.       } 
  70.     } 
  71.  
  72.     @Override 
  73.     public void setViewImage(ImageView v, int value) { 
  74.       // метод супер-класса 
  75.       super.setViewImage(v, value); 
  76.       // разрисовываем ImageView 
  77.       if (value == negative) v.setBackgroundColor(Color.RED); else 
  78.         if (value == positive) v.setBackgroundColor(Color.GREEN); 
  79.     } 
  80.   } 


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 дек 2013, 16:28 

Зарегистрирован: 21 мар 2013, 11:22
Сообщений: 162
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.
Добрый день!
Подскажите как получить _id cursor в методе setViewText(TextView v, String text)

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. class  MySimpleCursorAdapter extends SimpleCursorAdapter {
  2.                 long cursor_id;
  3.                 int red = getResources().getColor(R.color.Red);
  4.                
  5.                 public MySimpleCursorAdapter(Context context, int layout, Cursor c,
  6.                                 String[] from, int[] to) {     
  7.                                super(context, layout, c, from, to);                                    
  8.                 }
  9.                
  10.                 @Override
  11.                 public void setViewText(TextView v, String text) {
  12.                        
  13.                         super.setViewText(v, text);                    
  14.                         if(v.getId()== R.id.txt_name_culture_item){
  15.                                 // получить _id  cursor
  16.                         }
  17.                 }
  18.                
  19.                
  20.         }
  21.  


Спасибо


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 дек 2013, 17:26 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
Cursor cursor = (Cursor) getItem(position);
попробуй так

_________________
R.id.team

NullPointerException - что делать???
http://forum.startandroid.ru/viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
http://forum.startandroid.ru/viewtopic.php?f=60&t=3198


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 11:54 

Зарегистрирован: 05 фев 2014, 11:51
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
В layout файле указано:
Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. <LinearLayout
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:orientation="horizontal">
  6. <LinearLayout
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content"
  9. android:layout_marginBottom="5dp"
  10. android:layout_marginTop="5dp"
  11. android:orientation="horizontal">
  12.  
  13. ---- blah-blah ----
  14.  
  15. </LinearLayout>
  16. </LinearLayout>
  17.  


А зачем такое? Зачем внутрь layout класть ещё один layout единственным элементом? :shock:


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 12:10 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
ltsolo писал(а):
В layout файле указано:
Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. <LinearLayout
  2. xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:orientation="horizontal">
  6. <LinearLayout
  7. android:layout_width="match_parent"
  8. android:layout_height="wrap_content"
  9. android:layout_marginBottom="5dp"
  10. android:layout_marginTop="5dp"
  11. android:orientation="horizontal">
  12.  
  13. ---- blah-blah ----
  14.  
  15. </LinearLayout>
  16. </LinearLayout>
  17.  


А зачем такое? Зачем внутрь layout класть ещё один layout единственным элементом? :shock:

он не единственный, там же написанно: " ---- blah-blah ---- " :)

_________________
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 12:15 

Зарегистрирован: 05 фев 2014, 11:51
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
altwin писал(а):
он не единственный, там же написанно: " ---- blah-blah ---- " :)

Окей, поприкалывались и будет. А теперь серьёзно, зачем внутри одного layout другой layout единственным элементом?

Во внутренеем layout всё равно, что лежит, это не важно. Но во внешнем только один layout и лежит. Вот и странно это.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 12:47 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
ltsolo писал(а):
altwin писал(а):
он не единственный, там же написанно: " ---- blah-blah ---- " :)

Окей, поприкалывались и будет. А теперь серьёзно, зачем внутри одного layout другой layout единственным элементом?

Во внутренеем layout всё равно, что лежит, это не важно. Но во внешнем только один layout и лежит. Вот и странно это.

Если это сделали, значит это кому -то нужно. И если вы не встречали задачи в которой это нужно, то это не говорит ни о чем, кроме того, что вы не встречали такой задачи.
Как минимум я могу предположить, что это не весь layout там есть / будут динамически добавленны другие элементы, а может автор укажет padding и ему так просто удобно установить отступ от границы экрана, а может в background будут разные картинки и фон приложения динамически будет меняться устанавливая прозрачность, да какая разница, никто не будет делать что то просто так, хотя бы потому, что это занимает время, вообще варриантов может быть очень много, а вот зачем вы задаете такой вопрос я так и не понял, вам просто интересно? это бесполезная информация если вам это не нужно сейчас - всеравно забудете, когда понадобится просто сделаете и все поймете. Лучше почитайте следующий урок ;)

P.S. даже если задача была просто руками вложить один layout в другой - это правильный путь, потому, что тот, кто это сделал уже никогда не забудет, что так бывает...

_________________
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 13:36 

Зарегистрирован: 05 фев 2014, 11:51
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
altwin писал(а):
Если это сделали, значит это кому -то нужно.

Вот и тут так, если кто-то задаёт вопрос, значит это ему нужно.

altwin писал(а):
И если вы не встречали задачи в которой это нужно, то это не говорит ни о чем, кроме того, что вы не встречали такой задачи.
Как минимум я могу предположить, что это не весь layout


Потому и спрашиваю "зачем?". На вырост, просто рудимент или для этого есть какие-то более веские причины. Не хотелось бы использовать уроки как "делай так" и переходить от урока к уроку. Хотелось бы разобраться во всех тонкостях.

В общем, как и следовало ожидать объемлющий 1ayout ни для чего не нужен. Выставив android:paddingTop и android:paddingBottom во внутреннем можно смело убирать внешний, разницы визуально не будет.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 05 фев 2014, 13:54 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
ltsolo писал(а):
В общем, как и следовало ожидать объемлющий 1ayout ни для чего не нужен. Выставив android:paddingTop и android:paddingBottom во внутреннем можно смело убирать внешний, разницы визуально не будет.

Опять же padding задает отступ содержимого, а margin от наружного элементов. То о чем я вам и говорил, вам это не нужно сейчас и вы искуственную проблему создаете себе потому и не понимаете. Не имеет значение что в данном случае margin визуально дает тот же эффект, я вам по каждому уроку могу по 20 способов показать как добиться того же другим способом. Margin работает принципиально иначе и только в данном конкретном(искуственном) случае ведет себя визуально так же. Как минимум задавая padding я задаю для всех, в том числе отмеченных, как bla, blla, bla, а margin нужно указывать каждому, да и опять же -это не важно, а всеголишь способ выдающий тот же результат в конкретном примере.
Вложение такое даже пустых linearLayout можно оправдать даже глубокой убежденностью автора, что ему это потребуется завтра, в этом нет ошибки, а причину я так же как и вы в данном случае не знаю, но я не автор и знать ее не должен. Ваша задача читая уроки не привязываться к конкретному искуственному примеру, он всеголишь показывает конкретную возможность - вложение элемента и никто не пытался доказать что в данном случае это необходимо, а наоборот понять, как это сделать иначе и что будет если поступить по другому. Автор выполнил свою задачу - вложил элемент а зачем - для того, чтобы его вложить -это была цель наверно.

P.S. если вам интересны цели, когда и что делают, чтобы было "кошерно", вам стоит смотреть совсем другие примеры кода, например эти: https://github.com/android

_________________
Изображение


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

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


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

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