Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
#1

Абстрактный класс для layout - Программирование Android

29.05.2013, 10:03. Просмотров 765. Ответов 19
Метки нет (Все метки)

Уважаемые, форумчане, помогите решить проблему. В приложении большое количество layout с одинаковыми view-элементами, а именно TextView и ImageView. Как создать абстрактный класс для того, чтобы обращаться к нему, меняя только переменные из string и drawable, а не создавая каждый раз новый layout. Помогите пожааалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 10:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Абстрактный класс для layout (Программирование Android):

Существует ли программа для перевода layout-xml в java класс? - Программирование Android
Я вбиваю туда свой layout, а она даёт пример реализации этого layout, но через java класс. Было бы удобно ошибки у себя искать.

Анимированный дизайн смены Layout или просто выдвигаемый layout - Программирование Android
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить в гугл, всё что попадается это Drawer А мне нужнен просто...

Расширил класс Button. Как нужно подправить XML-layout? Еще ClassCastException - Программирование Android
Расширил класс Button: package com.some.thing; import android.content.Context; import android.util.AttributeSet; import...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те - Программирование Android
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити, на нем лежит Layout (горизонтальный) в котором 2й...

Не хочет работать в layout, но включается в layout-land - Программирование Android
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так : <?xml version="1.0" encoding="utf-8"?> <LinearLayout...

Layout для кнопки - Программирование Android
Добрый день. Добавляю кнопки программно через new MyButton. Можно как то создать отдельно loayot.xml где описать внешний вид, а потом...

19
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 10:06 #2
Цитата Сообщение от Stetsura Посмотреть сообщение
абстрактный класс для того, чтобы обращаться к нему
что-что?
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 10:09  [ТС] #3
Ну я может не точен в формулировке, но проблема, я думаю, понятна
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 10:12 #4
вы не умеете классы создавать? правой кнопкой по пекеджу->new->class
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 10:19  [ТС] #5
Есть класс, в нем несколько View. Как менять только ресурсы из string и drawable?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 10:45 #6
не понял вопроса.
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 11:17  [ТС] #7
Сформулирую по-другому. У меня есть класс Class0, в нем две Button. Также у меня есть класс Class1, который отображает activity1, и есть Class2 - отображает activity2. По нажатии в Class0 на кнопки Button1 или Button2 мы вызываем либо Class1, либо Class2 соответственно. Activity1 и activity2 выглядят одинаково: TextView, ImageView, TextView. Отличаются лишь содержимым, которое отображается во View. Текст хранится в переменных в файле string, а картинки в drawable. Как мне сделать вместо Class1 и Class2 - Class3, в котором будет отображаться activity3, содержащая так же TextView, ImageView, TextView. Но только нужно, чтобы менялись содержимые View элементов в зависимости от того нажата Button1 или Button2.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 12:01 #8
просто удалите Class2 а в Class1 передавайте информация о том, какой батон был нажат
пример:
Java
1
2
3
Intent intent = new Intent(this, MyActivity.class);
intent.putExtra("paramName", "paramValue");
startActivity(intent);
Java
1
String paramValue = getIntent().getStringExtra("paramName");
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 14:17  [ТС] #9
V0v1k, а теперь я вас не понял. Какую смысловую нагрузку несут paramName и paramValue?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 14:21 #10
название параметра и значение параметра.
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 14:33  [ТС] #11
Можете наглядно объяснить? С программированием у меня всё очень не хорошо.

ClassZero:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class ClassZero extends Activity implements OnClickListener{
    
    Button one, two;
    
    @Override
      protected void onCreate(Bundle savedInstanceState) 
        {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        
        one = (Button) findViewById(R.id.OneButton);
        two = (Button) findViewById(R.id.TwoButton);
        
        one.setOnClickListener(this);
        two.setOnClickListener(this);
        }
    
    @Override
      public void onClick(View v) 
      {
        switch (v.getId()) 
        {
        
        case R.id.OneButton:
            Intent intentOne = new Intent(this, ClassOne.class);
            startActivity(intentOne);
            break;
            
        case R.id.TwoButton:
            Intent intentTwo = new Intent(this, ClassTwo.class);
            startActivity(intentTwo);
            break;
            
        default:
          break;
        }
      }
    
 
}
ClassOne:
Java
1
2
3
4
5
6
7
8
9
10
11
public class ClassOne extends Activity {
    
    
    @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one_activity);
        
}
 
}
Class2:
Java
1
2
3
4
5
6
7
8
9
10
11
public class ClassTwo extends Activity {
    
    
    @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.two_activity);
        
}
 
}
one_activity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
     
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_one"
        android:gravity="center" >
    </TextView>
    
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@string/text_one"
        android:src="@drawable/picture_one" >
 
    </ImageView>
    
    </LinearLayout>
    
 
</ScrollView>
two_activity:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
     
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_two"
        android:gravity="center" >
    </TextView>
    
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:contentDescription="@string/text_two"
        android:src="@drawable/picture_one" >
 
    </ImageView>
    
    </LinearLayout>
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 14:45 #12
Java
1
2
3
4
5
6
7
8
Intent intentOne = new Intent(this, ClassOne.class);
switch (v.getId()) {
case R.id.OneButton:
intentOne.putExtra("button", 1);
case R.id.TwoButton:
intentOne.putExtra("button", 2);
}
startActivity(intentOne);
Java
1
2
3
4
5
6
7
8
9
10
11
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one_activity);
         int button = getIntent().getIntExtra("button", 1);
         if(button == 1) {
                 //была нажата кнопка 1
         } else {
               //была нажата кнопка 2
          }
}
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 14:50  [ТС] #13
V0v1k, первый кусок кода в onClick добавлять?
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
29.05.2013, 14:52 #14
где есть, там и оставьте.
0
Stetsura
0 / 0 / 0
Регистрация: 11.11.2012
Сообщений: 44
29.05.2013, 15:00  [ТС] #15
V0v1k, где он должен быть? Со вторым все понятно, но с первым нет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 15:00
Привет! Вот еще темы с ответами:

Прозрачность Layout для клика - Программирование Android
Есть программа в ней на activity лежит несколько слоев . На слоях много кнопок и.т.д. и самый верхний слой без всего (без кнопок) то...

Фон jpg для layout - Программирование Android
Привет. У меня RelativeLayout, на нем несколько вьюшек, пользователь может устанавливать любую картинку на фон, в связи с этим вопрос....

Динамически создать layout для адаптера - Программирование Android
Может кто подскажет, как динамически создать layout для адаптера? Задача заполнять таблицу данными из БД. Думаю удобно было-бы...

Длинное нажатие для android.R.layout.simple_list_item_multiple_choice - Программирование Android
Добрый день! Используя приведенный ниже код получил чекбоксы в списке, один из которых можно выделить, нажав на строку в списке. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
29.05.2013, 15:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru