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

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 12 дек 2018, 12:40

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




Начать новую тему Ответить на тему  [ Сообщений: 255 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12, 13  След.
Автор Сообщение
СообщениеДобавлено: 09 июн 2014, 16:06 
Аватар пользователя

Зарегистрирован: 14 фев 2014, 09:42
Сообщений: 135
Благодарил (а): 25 раз.
Поблагодарили: 1 раз.
Добрый день!

Столкнулся с одной проблемкой. Если пользователь устанавливает размер системного шрифта на большой или огромный, то естественно веся разметка лезет вкривь и вкось. Подскажите пожалуйста можно как то установить из кода приложения размер системного шрифта, чтобы он был нормальный NORMAL?

пробовал сделать так

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Settings.System.putFloat(this.getContentResolver(),Settings.System.FONT_SCALE,(float) 1.0);
  2.  


не помогло

и так тоже пробовал

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1. Configuration configuration = getResources().getConfiguration();
  2. configuration.fontScale=(float) 1; //0.85 small size, 1 normal size, 1,15 big etc
  3.  
  4. DisplayMetrics metrics = new DisplayMetrics();
  5. getWindowManager().getDefaultDisplay().getMetrics(metrics);
  6. metrics.scaledDensity = configuration.fontScale * metrics.density;
  7. getBaseContext().getResources().updateConfiguration(configuration, metrics);
  8.  


и тоже не помогло

разрешение в манифесте выставил такое

Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
  2.  


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 июн 2014, 17:30 
Аватар пользователя

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

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 09 июн 2014, 21:46 
Аватар пользователя

Зарегистрирован: 14 фев 2014, 09:42
Сообщений: 135
Благодарил (а): 25 раз.
Поблагодарили: 1 раз.
собственно у многих приложений такая проблема
у того же самого вашего Traning Note та же самая проблема
если установить шрифт на очень большой то разметка съезжает

Изображение

Изображение

так что у вас та же самая проблема что и у меня :)

и так же у многих видно что размер шрифта не меняется, даже при смене системного

вопрос прежний как этого добиться


Вложения:
Screenshot_2014-06-09-22-38-20.png
Screenshot_2014-06-09-22-38-20.png [ 168.2 KiB | Просмотров: 4816 ]
Screenshot_2014-06-09-22-35-05.png
Screenshot_2014-06-09-22-35-05.png [ 169.26 KiB | Просмотров: 4816 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 июн 2014, 09:39 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
Я его уже год не обновлял. Скоро выпускаю обновление, сделанное по всем канонам андроида.

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


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

Зарегистрирован: 14 фев 2014, 09:42
Сообщений: 135
Благодарил (а): 25 раз.
Поблагодарили: 1 раз.
вопрос то был не в этом :)

просто интересно как можно установить FONT_SCALE для своего приложения в нужное значение


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

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
Если брать мой случай, нужно сделать выравнивание текста по центру. Плюс ко всему, можно задать разные размеры для разных размеров экрана. Например, для маленьких экранов сделать заголовки чуть меньше чем для больших экранов. Делается это через разные values.

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


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

Зарегистрирован: 14 фев 2014, 09:42
Сообщений: 135
Благодарил (а): 25 раз.
Поблагодарили: 1 раз.
это я знаю, что можно через разные файлов ресурсов для разных размеров экранов и плотностей пикселей,
но часто такое может быть что даже если размер шрифта разный, если пользователь выберет в настройках огромный шрифт, то все равно разметка может поехать


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

Зарегистрирован: 20 июн 2014, 13:18
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Ребят, такая проблема: делал все в точности, как Виталий до момента, когда мы начали устанавливать значение текста в TextView из метода main. В классе id в файле R.java все добавилось, переменная myText есть. Вот смотрите, как я действую дальше: в файле MainActivity.java ввожу TextView myTextView=(TextView)findViewById (R.id.myText); (при этом добавив импорты), запускаю приложение, все работает, но он ругается, что переменная myTextView нигде не используется, это понятно. Вот дальше добавляю строку myTextView.setText("New text in text view");, запускаю приложение и вылетает. Пишет The application has stopped unexpectedly. Подскажите, что делать? Заранее спасибо :)


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

Зарегистрирован: 06 ноя 2013, 08:59
Сообщений: 114
Благодарил (а): 0 раз.
Поблагодарили: 25 раз.
Цитата:
Подскажите, что делать? Заранее спасибо

Нужно выкладывать код и логи.
Может Вы используете не тот layout файл?


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

Зарегистрирован: 22 июн 2014, 22:36
Сообщений: 2
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Цитата:
Ребят, такая проблема: делал все в точности, как Виталий до момента, когда мы начали устанавливать значение текста в TextView из метода main. В классе id в файле R.java все добавилось, переменная myText есть. Вот смотрите, как я действую дальше: в файле MainActivity.java ввожу TextView myTextView=(TextView)findViewById (R.id.myText); (при этом добавив импорты), запускаю приложение, все работает, но он ругается, что переменная myTextView нигде не используется, это понятно. Вот дальше добавляю строку myTextView.setText("New text in text view");, запускаю приложение и вылетает. Пишет The application has stopped unexpectedly. Подскажите, что делать? Заранее спасибо


У меня такая же проблема..

anpatu писал(а):
Нужно выкладывать код и логи.


Вот мой код:

Код: [ Загрузить ] [ Скрыть ]
  1. package ru.startandroid.develop.viewbyid; 
  2.  
  3. import android.support.v7.app.ActionBarActivity; 
  4. import android.support.v7.app.ActionBar; 
  5. import android.support.v4.app.Fragment; 
  6. import android.os.Bundle; 
  7. import android.view.LayoutInflater; 
  8. import android.view.Menu; 
  9. import android.view.MenuItem; 
  10. import android.view.View; 
  11. import android.view.ViewGroup; 
  12. import android.widget.TextView; 
  13. import android.widget.Toast; 
  14. import android.os.Build; 
  15.  
  16. public class MainActivity extends ActionBarActivity { 
  17.      
  18.     @Override 
  19.     protected void onCreate(Bundle savedInstanceState) { 
  20.         super.onCreate(savedInstanceState); 
  21.         setContentView(R.layout.activity_main); 
  22.          
  23.         TextView myTextView = (TextView) findViewById(R.id.myText); 
  24.         try { 
  25.             myTextView.setText("HAHAHA"); 
  26.         } 
  27.         catch(NullPointerException e) { 
  28.             Toast.makeText(this, "Oooops, something went wrong...", 1000).show(); 
  29.         }; 
  30.  
  31.         if (savedInstanceState == null) { 
  32.             getSupportFragmentManager().beginTransaction() 
  33.                     .add(R.id.container, new PlaceholderFragment()).commit(); 
  34.         } 
  35.     } 
  36.  
  37.     @Override 
  38.     public boolean onCreateOptionsMenu(Menu menu) { 
  39.  
  40.         // Inflate the menu; this adds items to the action bar if it is present. 
  41.         getMenuInflater().inflate(R.menu.main, menu); 
  42.         return true; 
  43.     } 
  44.  
  45.     @Override 
  46.     public boolean onOptionsItemSelected(MenuItem item) { 
  47.         // Handle action bar item clicks here. The action bar will 
  48.         // automatically handle clicks on the Home/Up button, so long 
  49.         // as you specify a parent activity in AndroidManifest.xml. 
  50.         int id = item.getItemId(); 
  51.         if (id == R.id.action_settings) { 
  52.             return true; 
  53.         } 
  54.         return super.onOptionsItemSelected(item); 
  55.     } 
  56.  
  57.     /** 
  58.      * A placeholder fragment containing a simple view. 
  59.      */ 
  60.     public static class PlaceholderFragment extends Fragment { 
  61.  
  62.         public PlaceholderFragment() { 
  63.         } 
  64.  
  65.         @Override 
  66.         public View onCreateView(LayoutInflater inflater, ViewGroup container, 
  67.                 Bundle savedInstanceState) { 
  68.             View rootView = inflater.inflate(R.layout.fragment_main, container, 
  69.                     false); 
  70.             return rootView; 
  71.         } 
  72.     } 
  73.  
  74.  


При запуске приложения появляется указанный Toast: "Oooops, something went wrong..."

Я, конечно, подразумеваю, что это из-за обновления Google Eclipse ADT Bundle, в котором помимо activity_main.xml создается еще fragment_main.xml... И что наш TextView в действительности находится во втором из них, а не в первом, что и приводит к исключению NullPointerException... Но как переписать код так, чтобы текст все-таки программно изменился?


Нашел ответ...

Вот так надо переписать код:

Код: [ Загрузить ] [ Скрыть ]
  1. package ru.startandroid.develop.viewbyid; 
  2.  
  3. import android.support.v7.app.ActionBarActivity; 
  4. import android.support.v7.app.ActionBar; 
  5. import android.support.v4.app.Fragment; 
  6. import android.content.Context; 
  7. import android.os.Bundle; 
  8. import android.view.LayoutInflater; 
  9. import android.view.Menu; 
  10. import android.view.MenuItem; 
  11. import android.view.View; 
  12. import android.view.ViewGroup; 
  13. import android.widget.TextView; 
  14. import android.widget.Toast; 
  15. import android.os.Build; 
  16.  
  17. public class MainActivity extends ActionBarActivity { 
  18.      
  19.     @Override 
  20.     protected void onCreate(Bundle savedInstanceState) { 
  21.         super.onCreate(savedInstanceState); 
  22.         setContentView(R.layout.activity_main); 
  23.  
  24.         if (savedInstanceState == null) { 
  25.             getSupportFragmentManager().beginTransaction() 
  26.                     .add(R.id.container, new PlaceholderFragment()).commit(); 
  27.         } 
  28.     } 
  29.  
  30.     @Override 
  31.     public boolean onCreateOptionsMenu(Menu menu) { 
  32.  
  33.         // Inflate the menu; this adds items to the action bar if it is present. 
  34.         getMenuInflater().inflate(R.menu.main, menu); 
  35.         return true; 
  36.     } 
  37.  
  38.     @Override 
  39.     public boolean onOptionsItemSelected(MenuItem item) { 
  40.         // Handle action bar item clicks here. The action bar will 
  41.         // automatically handle clicks on the Home/Up button, so long 
  42.         // as you specify a parent activity in AndroidManifest.xml. 
  43.         int id = item.getItemId(); 
  44.         if (id == R.id.action_settings) { 
  45.             return true; 
  46.         } 
  47.         return super.onOptionsItemSelected(item); 
  48.     } 
  49.  
  50.     /** 
  51.      * A placeholder fragment containing a simple view. 
  52.      */ 
  53.     public static class PlaceholderFragment extends Fragment { 
  54.  
  55.         public PlaceholderFragment() { 
  56.         } 
  57.  
  58.         @Override 
  59.         public View onCreateView(LayoutInflater inflater, ViewGroup container, 
  60.                 Bundle savedInstanceState) { 
  61.             View rootView = inflater.inflate(R.layout.fragment_main, container, 
  62.                     false); 
  63.              
  64.             TextView myTextView = (TextView) rootView.findViewById(R.id.myText); 
  65.             myTextView.setText("HAHAHA"); 
  66.              
  67.             return rootView; 
  68.         } 
  69.     } 
  70.  
  71.  


т.е. строки
Код: [ Загрузить ] [ Скрыть ]
  1. TextView myTextView = (TextView) rootView.findViewById(R.id.myText); 
  2.             myTextView.setText("HAHAHA"); 
добавить в метод onCreateView класса PlaceholderFragment, причем с добавлением rootView перед findViewById(R.id.myText)...

Теперь при запуске на экране "HAHAHA" :D


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

Зарегистрирован: 07 авг 2014, 14:22
Сообщений: 4
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Добрый день форумчане!
У меня имеется вопрос. Существует куча элементов экрана типа TextView c id vi1, vi2, vi3 и т.д.
Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     vi1 = (TextView) findViewById(R.id.vi1);
  2.     vi2 = (TextView) findViewById(R.id.vi2);
  3.     vi3 = (TextView) findViewById(R.id.vi3);
  4.     vi4 = (TextView) findViewById(R.id.vi4);
  5.     vi5 = (TextView) findViewById(R.id.vi5);
  6.     vi6 = (TextView) findViewById(R.id.vi6);
  7.     vi7 = (TextView) findViewById(R.id.vi7);
  8.     vi8 = (TextView) findViewById(R.id.vi8);
  9.     vi9 = (TextView) findViewById(R.id.vi9);
  10.     vi10 = (TextView) findViewById(R.id.vi10);
  11.     vi11 = (TextView) findViewById(R.id.vi11);
  12.     vi12 = (TextView) findViewById(R.id.vi12);
  13.     vi13 = (TextView) findViewById(R.id.vi13);
  14.     vi14 = (TextView) findViewById(R.id.vi14);
  15.     vi15 = (TextView) findViewById(R.id.vi15);
  16.     vi16 = (TextView) findViewById(R.id.vi16);    
  17.     vi17 = (TextView) findViewById(R.id.vi17);
  18.     vi18 = (TextView) findViewById(R.id.vi18);
  19.     vn1 = (TextView) findViewById(R.id.vn1);
  20.     vn2 = (TextView) findViewById(R.id.vn2);
  21.     vn3 = (TextView) findViewById(R.id.vn3);
  22.     vn4 = (TextView) findViewById(R.id.vn4);
  23.     vn5 = (TextView) findViewById(R.id.vn5);
  24.     vn6 = (TextView) findViewById(R.id.vn6);
  25.     vn7 = (TextView) findViewById(R.id.vn7);
  26.     vn8 = (TextView) findViewById(R.id.vn8);
  27.     vn9 = (TextView) findViewById(R.id.vn9);
  28.     vn10 = (TextView) findViewById(R.id.vn10);
  29.     vn11 = (TextView) findViewById(R.id.vn11);
  30.     vn12 = (TextView) findViewById(R.id.vn12);
  31.     vn13 = (TextView) findViewById(R.id.vn13);
  32.     vn14 = (TextView) findViewById(R.id.vn14);
  33.     vn15 = (TextView) findViewById(R.id.vn15);
  34.     vn16 = (TextView) findViewById(R.id.vn16);    
  35.     vn17 = (TextView) findViewById(R.id.vn17);
  36.     vn18 = (TextView) findViewById(R.id.vn18);
  37.     vs1 = (TextView) findViewById(R.id.vs1);
  38.     vs2 = (TextView) findViewById(R.id.vs2);
  39.     vs3 = (TextView) findViewById(R.id.vs3);
  40.     vs4 = (TextView) findViewById(R.id.vs4);
  41.     vs5 = (TextView) findViewById(R.id.vs5);
  42.     vs6 = (TextView) findViewById(R.id.vs6);
  43.     vs7 = (TextView) findViewById(R.id.vs7);
  44.     vs8 = (TextView) findViewById(R.id.vs8);
  45.     vs9 = (TextView) findViewById(R.id.vs9);
  46.     vs10 = (TextView) findViewById(R.id.vs10);
  47.     vs11 = (TextView) findViewById(R.id.vs11);
  48.     vs12 = (TextView) findViewById(R.id.vs12);
  49.     vs13 = (TextView) findViewById(R.id.vs13);
  50.     vs14 = (TextView) findViewById(R.id.vs14);
  51.     vs15 = (TextView) findViewById(R.id.vs15);
  52.     vs16 = (TextView) findViewById(R.id.vs16);    
  53.     vs17 = (TextView) findViewById(R.id.vs17);
  54.     vs18 = (TextView) findViewById(R.id.vs18);
  55.     va1 = (TextView) findViewById(R.id.va1);
  56.     va2 = (TextView) findViewById(R.id.va2);
  57.     va3 = (TextView) findViewById(R.id.va3);
  58.     va4 = (TextView) findViewById(R.id.va4);
  59.     va5 = (TextView) findViewById(R.id.va5);
  60.     va6 = (TextView) findViewById(R.id.va6);
  61.     va7 = (TextView) findViewById(R.id.va7);
  62.     va8 = (TextView) findViewById(R.id.va8);
  63.     va9 = (TextView) findViewById(R.id.va9);
  64.     va10 = (TextView) findViewById(R.id.va10);
  65.     va11 = (TextView) findViewById(R.id.va11);
  66.     va12 = (TextView) findViewById(R.id.va12);
  67.     va13 = (TextView) findViewById(R.id.va13);
  68.     va14 = (TextView) findViewById(R.id.va14);
  69.     va15 = (TextView) findViewById(R.id.va15);
  70.     va16 = (TextView) findViewById(R.id.va16);    
  71.     va17 = (TextView) findViewById(R.id.va17);
  72.     va18 = (TextView) findViewById(R.id.va18);


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 авг 2014, 14:39 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
Dazz1e писал(а):
Добрый день форумчане!
У меня имеется вопрос. Существует куча элементов экрана типа TextView c id vi1, vi2, vi3 и т.д.
Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     vi1 = (TextView) findViewById(R.id.vi1);
  2.     vi2 = (TextView) findViewById(R.id.vi2);
  3.     vi3 = (TextView) findViewById(R.id.vi3);
  4.     vi4 = (TextView) findViewById(R.id.vi4);
  5.     vi5 = (TextView) findViewById(R.id.vi5);
  6.     vi6 = (TextView) findViewById(R.id.vi6);
  7.     vi7 = (TextView) findViewById(R.id.vi7);
  8.     vi8 = (TextView) findViewById(R.id.vi8);
  9.     vi9 = (TextView) findViewById(R.id.vi9);
  10.     vi10 = (TextView) findViewById(R.id.vi10);
  11.     vi11 = (TextView) findViewById(R.id.vi11);
  12.     vi12 = (TextView) findViewById(R.id.vi12);
  13.     vi13 = (TextView) findViewById(R.id.vi13);
  14.     vi14 = (TextView) findViewById(R.id.vi14);
  15.     vi15 = (TextView) findViewById(R.id.vi15);
  16.     vi16 = (TextView) findViewById(R.id.vi16);    
  17.     vi17 = (TextView) findViewById(R.id.vi17);
  18.     vi18 = (TextView) findViewById(R.id.vi18);
  19.     vn1 = (TextView) findViewById(R.id.vn1);
  20.     vn2 = (TextView) findViewById(R.id.vn2);
  21.     vn3 = (TextView) findViewById(R.id.vn3);
  22.     vn4 = (TextView) findViewById(R.id.vn4);
  23.     vn5 = (TextView) findViewById(R.id.vn5);
  24.     vn6 = (TextView) findViewById(R.id.vn6);
  25.     vn7 = (TextView) findViewById(R.id.vn7);
  26.     vn8 = (TextView) findViewById(R.id.vn8);
  27.     vn9 = (TextView) findViewById(R.id.vn9);
  28.     vn10 = (TextView) findViewById(R.id.vn10);
  29.     vn11 = (TextView) findViewById(R.id.vn11);
  30.     vn12 = (TextView) findViewById(R.id.vn12);
  31.     vn13 = (TextView) findViewById(R.id.vn13);
  32.     vn14 = (TextView) findViewById(R.id.vn14);
  33.     vn15 = (TextView) findViewById(R.id.vn15);
  34.     vn16 = (TextView) findViewById(R.id.vn16);    
  35.     vn17 = (TextView) findViewById(R.id.vn17);
  36.     vn18 = (TextView) findViewById(R.id.vn18);
  37.     vs1 = (TextView) findViewById(R.id.vs1);
  38.     vs2 = (TextView) findViewById(R.id.vs2);
  39.     vs3 = (TextView) findViewById(R.id.vs3);
  40.     vs4 = (TextView) findViewById(R.id.vs4);
  41.     vs5 = (TextView) findViewById(R.id.vs5);
  42.     vs6 = (TextView) findViewById(R.id.vs6);
  43.     vs7 = (TextView) findViewById(R.id.vs7);
  44.     vs8 = (TextView) findViewById(R.id.vs8);
  45.     vs9 = (TextView) findViewById(R.id.vs9);
  46.     vs10 = (TextView) findViewById(R.id.vs10);
  47.     vs11 = (TextView) findViewById(R.id.vs11);
  48.     vs12 = (TextView) findViewById(R.id.vs12);
  49.     vs13 = (TextView) findViewById(R.id.vs13);
  50.     vs14 = (TextView) findViewById(R.id.vs14);
  51.     vs15 = (TextView) findViewById(R.id.vs15);
  52.     vs16 = (TextView) findViewById(R.id.vs16);    
  53.     vs17 = (TextView) findViewById(R.id.vs17);
  54.     vs18 = (TextView) findViewById(R.id.vs18);
  55.     va1 = (TextView) findViewById(R.id.va1);
  56.     va2 = (TextView) findViewById(R.id.va2);
  57.     va3 = (TextView) findViewById(R.id.va3);
  58.     va4 = (TextView) findViewById(R.id.va4);
  59.     va5 = (TextView) findViewById(R.id.va5);
  60.     va6 = (TextView) findViewById(R.id.va6);
  61.     va7 = (TextView) findViewById(R.id.va7);
  62.     va8 = (TextView) findViewById(R.id.va8);
  63.     va9 = (TextView) findViewById(R.id.va9);
  64.     va10 = (TextView) findViewById(R.id.va10);
  65.     va11 = (TextView) findViewById(R.id.va11);
  66.     va12 = (TextView) findViewById(R.id.va12);
  67.     va13 = (TextView) findViewById(R.id.va13);
  68.     va14 = (TextView) findViewById(R.id.va14);
  69.     va15 = (TextView) findViewById(R.id.va15);
  70.     va16 = (TextView) findViewById(R.id.va16);    
  71.     va17 = (TextView) findViewById(R.id.va17);
  72.     va18 = (TextView) findViewById(R.id.va18);

http://kostin.ws/java/java-loops.html

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


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

Зарегистрирован: 07 авг 2014, 14:22
Сообщений: 4
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
altwin писал(а):
Dazz1e писал(а):
Добрый день форумчане!
У меня имеется вопрос. Существует куча элементов экрана типа TextView c id vi1, vi2, vi3 и т.д.
Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     vi1 = (TextView) findViewById(R.id.vi1);
  2.     vi2 = (TextView) findViewById(R.id.vi2);
  3.     vi3 = (TextView) findViewById(R.id.vi3);
  4.     vi4 = (TextView) findViewById(R.id.vi4);
  5.     vi5 = (TextView) findViewById(R.id.vi5);
  6.     vi6 = (TextView) findViewById(R.id.vi6);
  7.     vi7 = (TextView) findViewById(R.id.vi7);
  8.     vi8 = (TextView) findViewById(R.id.vi8);
  9.     vi9 = (TextView) findViewById(R.id.vi9);
  10.     vi10 = (TextView) findViewById(R.id.vi10);
  11.     vi11 = (TextView) findViewById(R.id.vi11);
  12.     vi12 = (TextView) findViewById(R.id.vi12);
  13.     vi13 = (TextView) findViewById(R.id.vi13);
  14.     vi14 = (TextView) findViewById(R.id.vi14);
  15.     vi15 = (TextView) findViewById(R.id.vi15);
  16.     vi16 = (TextView) findViewById(R.id.vi16);    
  17.     vi17 = (TextView) findViewById(R.id.vi17);
  18.     vi18 = (TextView) findViewById(R.id.vi18);
  19.     vn1 = (TextView) findViewById(R.id.vn1);
  20.     vn2 = (TextView) findViewById(R.id.vn2);
  21.     vn3 = (TextView) findViewById(R.id.vn3);
  22.     vn4 = (TextView) findViewById(R.id.vn4);
  23.     vn5 = (TextView) findViewById(R.id.vn5);
  24.     vn6 = (TextView) findViewById(R.id.vn6);
  25.     vn7 = (TextView) findViewById(R.id.vn7);
  26.     vn8 = (TextView) findViewById(R.id.vn8);
  27.     vn9 = (TextView) findViewById(R.id.vn9);
  28.     vn10 = (TextView) findViewById(R.id.vn10);
  29.     vn11 = (TextView) findViewById(R.id.vn11);
  30.     vn12 = (TextView) findViewById(R.id.vn12);
  31.     vn13 = (TextView) findViewById(R.id.vn13);
  32.     vn14 = (TextView) findViewById(R.id.vn14);
  33.     vn15 = (TextView) findViewById(R.id.vn15);
  34.     vn16 = (TextView) findViewById(R.id.vn16);    
  35.     vn17 = (TextView) findViewById(R.id.vn17);
  36.     vn18 = (TextView) findViewById(R.id.vn18);
  37.     vs1 = (TextView) findViewById(R.id.vs1);
  38.     vs2 = (TextView) findViewById(R.id.vs2);
  39.     vs3 = (TextView) findViewById(R.id.vs3);
  40.     vs4 = (TextView) findViewById(R.id.vs4);
  41.     vs5 = (TextView) findViewById(R.id.vs5);
  42.     vs6 = (TextView) findViewById(R.id.vs6);
  43.     vs7 = (TextView) findViewById(R.id.vs7);
  44.     vs8 = (TextView) findViewById(R.id.vs8);
  45.     vs9 = (TextView) findViewById(R.id.vs9);
  46.     vs10 = (TextView) findViewById(R.id.vs10);
  47.     vs11 = (TextView) findViewById(R.id.vs11);
  48.     vs12 = (TextView) findViewById(R.id.vs12);
  49.     vs13 = (TextView) findViewById(R.id.vs13);
  50.     vs14 = (TextView) findViewById(R.id.vs14);
  51.     vs15 = (TextView) findViewById(R.id.vs15);
  52.     vs16 = (TextView) findViewById(R.id.vs16);    
  53.     vs17 = (TextView) findViewById(R.id.vs17);
  54.     vs18 = (TextView) findViewById(R.id.vs18);
  55.     va1 = (TextView) findViewById(R.id.va1);
  56.     va2 = (TextView) findViewById(R.id.va2);
  57.     va3 = (TextView) findViewById(R.id.va3);
  58.     va4 = (TextView) findViewById(R.id.va4);
  59.     va5 = (TextView) findViewById(R.id.va5);
  60.     va6 = (TextView) findViewById(R.id.va6);
  61.     va7 = (TextView) findViewById(R.id.va7);
  62.     va8 = (TextView) findViewById(R.id.va8);
  63.     va9 = (TextView) findViewById(R.id.va9);
  64.     va10 = (TextView) findViewById(R.id.va10);
  65.     va11 = (TextView) findViewById(R.id.va11);
  66.     va12 = (TextView) findViewById(R.id.va12);
  67.     va13 = (TextView) findViewById(R.id.va13);
  68.     va14 = (TextView) findViewById(R.id.va14);
  69.     va15 = (TextView) findViewById(R.id.va15);
  70.     va16 = (TextView) findViewById(R.id.va16);    
  71.     va17 = (TextView) findViewById(R.id.va17);
  72.     va18 = (TextView) findViewById(R.id.va18);

http://kostin.ws/java/java-loops.html

Здравствуйте altwin,
Это конечно классно, но как это выполнить?! Конкатенетить?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 авг 2014, 17:14 
Аватар пользователя

Зарегистрирован: 13 ноя 2013, 14:46
Сообщений: 1956
Благодарил (а): 10 раз.
Поблагодарили: 275 раз.
Dazz1e писал(а):
altwin писал(а):
Dazz1e писал(а):
Добрый день форумчане!
У меня имеется вопрос. Существует куча элементов экрана типа TextView c id vi1, vi2, vi3 и т.д.
Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     vi1 = (TextView) findViewById(R.id.vi1);
  2.     vi2 = (TextView) findViewById(R.id.vi2);
  3.     vi3 = (TextView) findViewById(R.id.vi3);
  4.     vi4 = (TextView) findViewById(R.id.vi4);
  5.     vi5 = (TextView) findViewById(R.id.vi5);
  6.     vi6 = (TextView) findViewById(R.id.vi6);
  7.     vi7 = (TextView) findViewById(R.id.vi7);
  8.     vi8 = (TextView) findViewById(R.id.vi8);
  9.     vi9 = (TextView) findViewById(R.id.vi9);
  10.     vi10 = (TextView) findViewById(R.id.vi10);
  11.     vi11 = (TextView) findViewById(R.id.vi11);
  12.     vi12 = (TextView) findViewById(R.id.vi12);
  13.     vi13 = (TextView) findViewById(R.id.vi13);
  14.     vi14 = (TextView) findViewById(R.id.vi14);
  15.     vi15 = (TextView) findViewById(R.id.vi15);
  16.     vi16 = (TextView) findViewById(R.id.vi16);    
  17.     vi17 = (TextView) findViewById(R.id.vi17);
  18.     vi18 = (TextView) findViewById(R.id.vi18);
  19.     vn1 = (TextView) findViewById(R.id.vn1);
  20.     vn2 = (TextView) findViewById(R.id.vn2);
  21.     vn3 = (TextView) findViewById(R.id.vn3);
  22.     vn4 = (TextView) findViewById(R.id.vn4);
  23.     vn5 = (TextView) findViewById(R.id.vn5);
  24.     vn6 = (TextView) findViewById(R.id.vn6);
  25.     vn7 = (TextView) findViewById(R.id.vn7);
  26.     vn8 = (TextView) findViewById(R.id.vn8);
  27.     vn9 = (TextView) findViewById(R.id.vn9);
  28.     vn10 = (TextView) findViewById(R.id.vn10);
  29.     vn11 = (TextView) findViewById(R.id.vn11);
  30.     vn12 = (TextView) findViewById(R.id.vn12);
  31.     vn13 = (TextView) findViewById(R.id.vn13);
  32.     vn14 = (TextView) findViewById(R.id.vn14);
  33.     vn15 = (TextView) findViewById(R.id.vn15);
  34.     vn16 = (TextView) findViewById(R.id.vn16);    
  35.     vn17 = (TextView) findViewById(R.id.vn17);
  36.     vn18 = (TextView) findViewById(R.id.vn18);
  37.     vs1 = (TextView) findViewById(R.id.vs1);
  38.     vs2 = (TextView) findViewById(R.id.vs2);
  39.     vs3 = (TextView) findViewById(R.id.vs3);
  40.     vs4 = (TextView) findViewById(R.id.vs4);
  41.     vs5 = (TextView) findViewById(R.id.vs5);
  42.     vs6 = (TextView) findViewById(R.id.vs6);
  43.     vs7 = (TextView) findViewById(R.id.vs7);
  44.     vs8 = (TextView) findViewById(R.id.vs8);
  45.     vs9 = (TextView) findViewById(R.id.vs9);
  46.     vs10 = (TextView) findViewById(R.id.vs10);
  47.     vs11 = (TextView) findViewById(R.id.vs11);
  48.     vs12 = (TextView) findViewById(R.id.vs12);
  49.     vs13 = (TextView) findViewById(R.id.vs13);
  50.     vs14 = (TextView) findViewById(R.id.vs14);
  51.     vs15 = (TextView) findViewById(R.id.vs15);
  52.     vs16 = (TextView) findViewById(R.id.vs16);    
  53.     vs17 = (TextView) findViewById(R.id.vs17);
  54.     vs18 = (TextView) findViewById(R.id.vs18);
  55.     va1 = (TextView) findViewById(R.id.va1);
  56.     va2 = (TextView) findViewById(R.id.va2);
  57.     va3 = (TextView) findViewById(R.id.va3);
  58.     va4 = (TextView) findViewById(R.id.va4);
  59.     va5 = (TextView) findViewById(R.id.va5);
  60.     va6 = (TextView) findViewById(R.id.va6);
  61.     va7 = (TextView) findViewById(R.id.va7);
  62.     va8 = (TextView) findViewById(R.id.va8);
  63.     va9 = (TextView) findViewById(R.id.va9);
  64.     va10 = (TextView) findViewById(R.id.va10);
  65.     va11 = (TextView) findViewById(R.id.va11);
  66.     va12 = (TextView) findViewById(R.id.va12);
  67.     va13 = (TextView) findViewById(R.id.va13);
  68.     va14 = (TextView) findViewById(R.id.va14);
  69.     va15 = (TextView) findViewById(R.id.va15);
  70.     va16 = (TextView) findViewById(R.id.va16);    
  71.     va17 = (TextView) findViewById(R.id.va17);
  72.     va18 = (TextView) findViewById(R.id.va18);

http://kostin.ws/java/java-loops.html

Здравствуйте altwin,
Это конечно классно, но как это выполнить?! Конкатенетить?

а что вас смущает ? Отвечая себе на этот вопрос вы всегда найдете решение, конкатенация строк, даст вам строку, а вам нужен id ресурса, для этого существует метод - getIdentifier
Код: [ Загрузить ] [ Скрыть ]
Using Java(TM) 2 Platform Standard Edition 5.0 Syntax Highlighting
  1. Resources res = getResources(); //if you are in an activity
  2. for (int i = 1; i < 13; i++) {
  3.    String idName = "imageView" + i;
  4.    buttons[i] = (ImageView) findViewById(res.getIdentifier(idName, "id, getPackageName()));
  5. }
  6.  

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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 авг 2014, 23:50 
Аватар пользователя

Зарегистрирован: 20 окт 2012, 12:01
Сообщений: 4201
Благодарил (а): 68 раз.
Поблагодарили: 467 раз.
можно вьюшки в массив положить и их перебирать почти так же

Код: [ Загрузить ] [ Скрыть ]
  1. Context mContext = getActivity().getBaseContext() ;              
  2.  
  3.                  mRes = mContext.getResources();                  
  4.  
  5.                 String[] idOfButtons={"btn0","btn1", "btn2", "btn3", "btn4"};    
  6.  
  7.                 for (int position = 0; position < idOfButtons.length; position++) {                      
  8.  
  9.                            Integer btnId = mRes.getIdentifier(idOfButtons[position], "id", ( getActivity()).getBaseContext().getPackageName());                    
  10.  
  11.                            ImageButton btn = (ImageButton) v.findViewById(btnId);                          
  12.  
  13.                            btn.setOnClickListener(this.onClick); 
  14.  
  15.                         } 

_________________
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


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 авг 2014, 10:26 

Зарегистрирован: 07 авг 2014, 14:22
Сообщений: 4
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
altwin писал(а):
Dazz1e писал(а):
altwin писал(а):
Dazz1e писал(а):
Добрый день форумчане!
У меня имеется вопрос. Существует куча элементов экрана типа TextView c id vi1, vi2, vi3 и т.д.
Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво.

Код: [ Загрузить ] [ Скрыть ]
Using Java Syntax Highlighting
  1.     vi1 = (TextView) findViewById(R.id.vi1);
  2.     vi2 = (TextView) findViewById(R.id.vi2);
  3.     vi3 = (TextView) findViewById(R.id.vi3);
  4.     vi4 = (TextView) findViewById(R.id.vi4);
  5.     vi5 = (TextView) findViewById(R.id.vi5);
  6.     vi6 = (TextView) findViewById(R.id.vi6);
  7.     vi7 = (TextView) findViewById(R.id.vi7);
  8.     vi8 = (TextView) findViewById(R.id.vi8);
  9.     vi9 = (TextView) findViewById(R.id.vi9);
  10.     vi10 = (TextView) findViewById(R.id.vi10);
  11.     vi11 = (TextView) findViewById(R.id.vi11);
  12.     vi12 = (TextView) findViewById(R.id.vi12);
  13.     vi13 = (TextView) findViewById(R.id.vi13);
  14.     vi14 = (TextView) findViewById(R.id.vi14);
  15.     vi15 = (TextView) findViewById(R.id.vi15);
  16.     vi16 = (TextView) findViewById(R.id.vi16);    
  17.     vi17 = (TextView) findViewById(R.id.vi17);
  18.     vi18 = (TextView) findViewById(R.id.vi18);
  19.     vn1 = (TextView) findViewById(R.id.vn1);
  20.     vn2 = (TextView) findViewById(R.id.vn2);
  21.     vn3 = (TextView) findViewById(R.id.vn3);
  22.     vn4 = (TextView) findViewById(R.id.vn4);
  23.     vn5 = (TextView) findViewById(R.id.vn5);
  24.     vn6 = (TextView) findViewById(R.id.vn6);
  25.     vn7 = (TextView) findViewById(R.id.vn7);
  26.     vn8 = (TextView) findViewById(R.id.vn8);
  27.     vn9 = (TextView) findViewById(R.id.vn9);
  28.     vn10 = (TextView) findViewById(R.id.vn10);
  29.     vn11 = (TextView) findViewById(R.id.vn11);
  30.     vn12 = (TextView) findViewById(R.id.vn12);
  31.     vn13 = (TextView) findViewById(R.id.vn13);
  32.     vn14 = (TextView) findViewById(R.id.vn14);
  33.     vn15 = (TextView) findViewById(R.id.vn15);
  34.     vn16 = (TextView) findViewById(R.id.vn16);    
  35.     vn17 = (TextView) findViewById(R.id.vn17);
  36.     vn18 = (TextView) findViewById(R.id.vn18);
  37.     vs1 = (TextView) findViewById(R.id.vs1);
  38.     vs2 = (TextView) findViewById(R.id.vs2);
  39.     vs3 = (TextView) findViewById(R.id.vs3);
  40.     vs4 = (TextView) findViewById(R.id.vs4);
  41.     vs5 = (TextView) findViewById(R.id.vs5);
  42.     vs6 = (TextView) findViewById(R.id.vs6);
  43.     vs7 = (TextView) findViewById(R.id.vs7);
  44.     vs8 = (TextView) findViewById(R.id.vs8);
  45.     vs9 = (TextView) findViewById(R.id.vs9);
  46.     vs10 = (TextView) findViewById(R.id.vs10);
  47.     vs11 = (TextView) findViewById(R.id.vs11);
  48.     vs12 = (TextView) findViewById(R.id.vs12);
  49.     vs13 = (TextView) findViewById(R.id.vs13);
  50.     vs14 = (TextView) findViewById(R.id.vs14);
  51.     vs15 = (TextView) findViewById(R.id.vs15);
  52.     vs16 = (TextView) findViewById(R.id.vs16);    
  53.     vs17 = (TextView) findViewById(R.id.vs17);
  54.     vs18 = (TextView) findViewById(R.id.vs18);
  55.     va1 = (TextView) findViewById(R.id.va1);
  56.     va2 = (TextView) findViewById(R.id.va2);
  57.     va3 = (TextView) findViewById(R.id.va3);
  58.     va4 = (TextView) findViewById(R.id.va4);
  59.     va5 = (TextView) findViewById(R.id.va5);
  60.     va6 = (TextView) findViewById(R.id.va6);
  61.     va7 = (TextView) findViewById(R.id.va7);
  62.     va8 = (TextView) findViewById(R.id.va8);
  63.     va9 = (TextView) findViewById(R.id.va9);
  64.     va10 = (TextView) findViewById(R.id.va10);
  65.     va11 = (TextView) findViewById(R.id.va11);
  66.     va12 = (TextView) findViewById(R.id.va12);
  67.     va13 = (TextView) findViewById(R.id.va13);
  68.     va14 = (TextView) findViewById(R.id.va14);
  69.     va15 = (TextView) findViewById(R.id.va15);
  70.     va16 = (TextView) findViewById(R.id.va16);    
  71.     va17 = (TextView) findViewById(R.id.va17);
  72.     va18 = (TextView) findViewById(R.id.va18);

http://kostin.ws/java/java-loops.html

Здравствуйте altwin,
Это конечно классно, но как это выполнить?! Конкатенетить?

а что вас смущает ? Отвечая себе на этот вопрос вы всегда найдете решение, конкатенация строк, даст вам строку, а вам нужен id ресурса, для этого существует метод - getIdentifier
Код: [ Загрузить ] [ Скрыть ]
Using Java(TM) 2 Platform Standard Edition 5.0 Syntax Highlighting
  1. Resources res = getResources(); //if you are in an activity
  2. for (int i = 1; i < 13; i++) {
  3.    String idName = "imageView" + i;
  4.    buttons[i] = (ImageView) findViewById(res.getIdentifier(idName, "id, getPackageName()));
  5. }
  6.  

У меня вопрос, как вы инициализировали buttons[]?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 авг 2014, 14:43 
Аватар пользователя

Зарегистрирован: 17 фев 2012, 21:23
Сообщений: 1339
Откуда: Мордор
Благодарил (а): 16 раз.
Поблагодарили: 161 раз.
Dazz1e писал(а):
...Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво...
По мне, так тут изначально выбрано не "красивое" решение. Даже если вы сможете записать ссылки на все TextView в массив, дальнейшее их использование будет настоящим мучением.
Что вы вообще хотели получить в итоге?

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


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

Зарегистрирован: 07 авг 2014, 14:22
Сообщений: 4
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
KamiSempai писал(а):
Dazz1e писал(а):
...Можно ли это как то компактнее выполнить?
Ибо выходит не очень красиво...
По мне, так тут изначально выбрано не "красивое" решение. Даже если вы сможете записать ссылки на все TextView в массив, дальнейшее их использование будет настоящим мучением.
Что вы вообще хотели получить в итоге?

В лэйблы, вводятся данные из БД. И вводить их можно будет циклом do while. Решение вывода данных, с использованием массива и цикла я знаю, но использование массива и цикла для присвоения значений не выходит, т.к. я не знаком в совершенстве с Java да и со всем программированием в том числе. Да и циклы с массивами недолюбливаю.


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

Зарегистрирован: 21 авг 2014, 13:13
Сообщений: 15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Из текста урока № 8: "Давайте откроем main.xml, для TextView укажем ID = @+id/myText и сохраним"
может быть, поправить выделенное - закавычить?? Тем более, ниже на скриншоте - именно так?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 22 авг 2014, 14:07 
Аватар пользователя

Зарегистрирован: 21 авг 2014, 13:13
Сообщений: 15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Не удается построить приложение из восьмого урока... Создавал его заново уже много раз ... все что-то не так!
Примерно в половине случаев во вновь созданном приложении вдруг отрастает ошибка - "AndroidManifest.xml file missing!", хотя этот файл присутствует и прекрасно выглядит...
Как это понять и как лечить ?
И, если не сложно, - добавьте в конце урока текст приложение P0081_ViewBuild целиком для копирования и вставки в новый проект...
Спасибо.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 255 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10, 11, 12, 13  След.

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


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

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