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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
#1

Как правильно настроить ArrayAdapter? - Программирование Android

30.07.2013, 15:33. Просмотров 1112. Ответов 16
Метки нет (Все метки)

Создаю своё первое приложение, потому вопрос новичка.
Статья, которой я руководствовался - поверхностная, потому во многом пришлось разбираться самому.
За основу было взято SlidingMenu и ActionBarSherlok, все библиотеки были подключены и приложение работает, подскажите как правильно настроить ArrayAdapter для переключения активностей с бокового меню?
Java
1
2
3
4
5
6
7
8
9
10
protected void setMenuItems(){
  String[] items = {"one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","cat","dog","fish","meat","health","good","father"};
  MainActivity.getSideMenuList().setAdapter(new ArrayAdapter<object>(MainActivity.getActivity(), R.layout.sidemenu_item, R.id.text1, items));
   }
 
protected void setTabs(){
  com.actionbarsherlock.app.ActionBar bar = getSupportActionBar();
  Tab tab1 = bar.newTab().setText("First tab");
   }
}
Последняя строчка (Tab tab1 = bar.newTab().setText("First tab");) выдаёт ошибку, что tab1 нигде не изпользуется, подскажите как его задействовать и переключиться на другую активность?

Полный код MainActivity:
Кликните здесь для просмотра всего текста
package com.example.ftest;

import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuItem;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends SherlockFragmentActivity {
protected static MainActivity instance;
protected static SlidingMenu menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Some title");
// set the content view
setContentView(R.layout.activity_main);
MainActivity.instance = this;
this.setMenu();
this.setTabs();
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
if(getSideMenu().isMenuShowing())
menu.showContent();
else
getActivity().finish();

}
else if(keyCode == KeyEvent.KEYCODE_HOME){
this.menuToggle();
}
return false;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == android.R.id.home){
this.menuToggle();
}
return true;
}


/*METHODS*/
public void menuToggle(){
if(getSideMenu().isMenuShowing())
menu.showContent();
else
menu.showMenu();
}

public static MainActivity getActivity(){
return MainActivity.instance;
}

public static SlidingMenu getSideMenu(){
return MainActivity.menu;
}

public static ListView getSideMenuList(){
return (ListView) getActivity().findViewById(R.id.sidemenu);
}

protected void setMenu(){
SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.LEFT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setFadeDegree(0.35f);
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.sidemenu);
menu.setBehindWidth(200);
menu.setBackgroundColor(0xFF333333);
getSupportActionBar().setHomeButtonEnabled(true);
MainActivity.menu = menu;
this.setMenuItems();
}

protected void setMenuItems(){
String[] items = {"one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","cat","dog","fish","meat","health","good","father"};
MainActivity.getSideMenuList().setAdapter(new ArrayAdapter<Object>(MainActivity.getActivity(), R.layout.sidemenu_item, R.id.text1, items));
}

protected void setTabs(){
com.actionbarsherlock.app.ActionBar bar = getSupportActionBar();
Tab tab1 = bar.newTab().setText("First tab");
}


}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2013, 15:33     Как правильно настроить ArrayAdapter?
Посмотрите здесь:

Как правильно настроить Genymotion и где потом искать файлы базы данных? - Программирование Android
Здравствуйте. В проекте нужно создать базу данных. Как правильно настроить Genymotion и где потом искать файлы этой базы данных в...

ACTION_SEND в ArrayAdapter - Программирование Android
Ребят,вопрос такой, есть GridView с картинками, к нему отдельным классом подключен Adapter. Необходимо по клику картинки делать ACTON_SEND....

Собственный ArrayAdapter - Программирование Android
Доброго времени суток. Пытаюсь написать собственный адаптер для строкового типа: titles = new ArrayList&lt;String&gt;(messages.size());...

Обновление данных в ArrayAdapter - Программирование Android
Добрый день. Есть созданный ArrayAdapter. Он добавляется в listView, при достижении конца списка происходит получение информации и...

ArrayAdapter и много заморочек - Программирование Android
Сам ArrayAdapter String data = new String{&quot;Текст 1&quot;,&quot;Текст 2&quot;}; ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;&gt;(this, ...

Привязка класса к ArrayAdapter - Программирование Android
Добрый день. Есть класс, содержащий опросы private static class Polls { private final int _Id; private final...

Отличия в работе ArrayAdapter - Программирование Android
Что то не понятное с ArrayAdapter на Android 2.3, У меня есть EditText в списке, меняя значение одного, меняются все. На Android &gt;= 4.0 все...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
30.07.2013, 16:00     Как правильно настроить ArrayAdapter? #2
Цитата Сообщение от mcGurov Посмотреть сообщение
подскажите как его задействовать и переключиться на другую активность?
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class TabNavigation extends SherlockFragmentActivity {
 
    String[] mTestArray;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           
           mTestArray = getResources().getStringArray(R.array.data_about);
 
           ActionBar bar = getSupportActionBar();
           bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
           ActionBar.Tab tab1 = bar.newTab();
           ActionBar.Tab tab2 = bar.newTab();
           ActionBar.Tab tab3 = bar.newTab();
           tab1.setText(mTestArray[0]);
           tab2.setText(mTestArray[1]);
           tab3.setText(mTestArray[2]);
           tab1.setTabListener(new MyTabListener());
           tab2.setTabListener(new MyTabListener());
           tab3.setTabListener(new MyTabListener());
           bar.addTab(tab1);
           bar.addTab(tab2);
           bar.addTab(tab3);
      }
     
      private class MyTabListener implements ActionBar.TabListener {
             
              @Override
              public void onTabSelected(Tab tab, FragmentTransaction ft) {
                     
                    if(tab.getPosition()==0){
                        
                       FragmentA frag = new FragmentA();
                       ft.replace(android.R.id.content, frag);
                     }
                     else if(tab.getPosition()==1) {
                         
                       FragmentB frag = new FragmentB();
                       ft.replace(android.R.id.content, frag);
                     }
                     else {
                         
                         FragmentC frag = new FragmentC();
                         ft.replace(android.R.id.content, frag);
                     }
               }
              
              @Override
              public void onTabUnselected(Tab tab, FragmentTransaction ft) {
 
              }
              
              @Override
              public void onTabReselected(Tab tab, FragmentTransaction ft) {
 
              }
       }
  }
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
30.07.2013, 16:16  [ТС]     Как правильно настроить ArrayAdapter? #3
Спасибо за помощь! А нужно ли прописывать fragment в activity.xml?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
30.07.2013, 16:18     Как правильно настроить ArrayAdapter? #4
Цитата Сообщение от mcGurov Посмотреть сообщение
Спасибо за помощь! А нужно ли прописывать fragment в activity.xml?
Каждый фрагмент отдельно идёт, вот пример фрагмента А
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class FragmentA extends Fragment {
 
    
       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) {
              return inflater.inflate(R.layout.about, group, false);
         }
 
       @Override
       public void onActivityCreated (Bundle savedInstanceState) {
               super.onActivityCreated(savedInstanceState);
 
         }
  }
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
31.07.2013, 00:34  [ТС]     Как правильно настроить ArrayAdapter? #5
Вроде всё прописал, только в месте:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private class MyTabListener implements ActionBar.TabListener {
             
              @Override
              public void onTabSelected(Tab tab, FragmentTransaction ft) {
                     
                    if(tab.getPosition()==0){
                        
                       FragmentA frag = new FragmentA();
                       ft.replace(android.R.id.content, frag);
                     }
                     else if(tab.getPosition()==1) {
                         
                       FragmentB frag = new FragmentB();
                       ft.replace(android.R.id.content, frag);
                     }
                     else {
                         
                         FragmentC frag = new FragmentC();
                         ft.replace(android.R.id.content, frag);
                     }
               }
Выдаёт ошибку The method replace(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, FragmentA)
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.07.2013, 00:42     Как правильно настроить ArrayAdapter? #6
FragmentA это точно фрагмент?
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
31.07.2013, 01:16  [ТС]     Как правильно настроить ArrayAdapter? #7
Может не правильно создал фрагмент...
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.07.2013, 01:19     Как правильно настроить ArrayAdapter? #8
или с импортами накосячили.
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
31.07.2013, 01:37  [ТС]     Как правильно настроить ArrayAdapter? #9
Фрагмент вроде в порядке, создал ява клас с именем FragmentA получилось:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.ftest;
 
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
public class FragmentA extends Fragment {
     
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) {
           return inflater.inflate(R.layout.activity_window_a, group, false);
      }
 
    @Override
    public void onActivityCreated (Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
 
      }
}
Правильно?

А как узнать накосячил с импортами или нет?

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.example.ftest;
 
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
 
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
import com.actionbarsherlock.app.SherlockFragmentActivity;
 
public class TabNavigation extends SherlockFragmentActivity {
     
    String[] mTestArray;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           
           mTestArray = getResources().getStringArray(R.id.text1);
 
           ActionBar bar = getSupportActionBar();
           bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
           ActionBar.Tab tab1 = bar.newTab();
           ActionBar.Tab tab2 = bar.newTab();
           ActionBar.Tab tab3 = bar.newTab();
           tab1.setText(mTestArray[0]);
           tab2.setText(mTestArray[1]);
           tab3.setText(mTestArray[2]);
           tab1.setTabListener(new MyTabListener());
           tab2.setTabListener(new MyTabListener());
           tab3.setTabListener(new MyTabListener());
           bar.addTab(tab1);
           bar.addTab(tab2);
           bar.addTab(tab3);
      }
     
      private class MyTabListener implements ActionBar.TabListener {
             
              @Override
              public void onTabSelected(Tab tab, FragmentTransaction ft) {
                     
                    if(tab.getPosition()==0){
                        
                       FragmentA frag = new FragmentA();
                       ft.replace(android.R.id.content, frag);
                     }
                     else if(tab.getPosition()==1) {
                         
                       FragmentB frag = new FragmentB();
                       ft.replace(android.R.id.content, frag);
                     }
                     else {
                         
                         FragmentC frag = new FragmentC();
                         ft.replace(android.R.id.content, frag);
                     }
               }
              
              @Override
              public void onTabUnselected(Tab tab, FragmentTransaction ft) {
 
              }
              
              @Override
              public void onTabReselected(Tab tab, FragmentTransaction ft) {
 
              }
 
            
       }
  }
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
31.07.2013, 01:44     Как правильно настроить ArrayAdapter? #10
Цитата Сообщение от mcGurov Посмотреть сообщение
import android.support.v4.app.FragmentTransaction
Цитата Сообщение от mcGurov Посмотреть сообщение
import android.app.Fragment;
разве вас не смущают разные пакеты?
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
01.08.2013, 09:35  [ТС]     Как правильно настроить ArrayAdapter? #11
Разобрался, спасибо! Ответьте пожалуйста на последний и главный вопрос: как теперь при выборе пункта меню перейти на новое окно? Код MainActivity в первом посте в спойлере.

Добавлено через 15 часов 38 минут
Как использовать то этот адаптер, приложение работает, но окна не листаются?!
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
18.08.2013, 10:48  [ТС]     Как правильно настроить ArrayAdapter? #12
Вопрос все еще актуален, подскажите пожалуйста, кто знает.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
18.08.2013, 17:25     Как правильно настроить ArrayAdapter? #13
Цитата Сообщение от mcGurov Посмотреть сообщение
Вопрос все еще актуален, подскажите пожалуйста, кто знает.
Какой вопрос?
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
18.08.2013, 21:35  [ТС]     Как правильно настроить ArrayAdapter? #14
Цитата Сообщение от mcGurov Посмотреть сообщение
Ответьте пожалуйста на последний и главный вопрос: как теперь при выборе пункта меню перейти на новое окно? Код MainActivity в первом посте в спойлере.
Как использовать то этот адаптер, приложение работает, но окна не листаются?!

Последняя строчка
Java
1
(Tab tab1 = bar.newTab().setText("First tab");)
выдаёт ошибку, что tab1 нигде не изпользуется, подскажите как его задействовать и переключиться на другую активность?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.08.2013, 21:41     Как правильно настроить ArrayAdapter? #15
http://developer.android.com/guide/t...nbar.html#Tabs
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
18.08.2013, 22:03  [ТС]     Как правильно настроить ArrayAdapter? #16
Я конечно дружу с английским языком более менее, но понять это...
Всё равно спасибо, что ответили...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2013, 12:23     Как правильно настроить ArrayAdapter?
Еще ссылки по теме:

Собственный адаптер на основе ArrayAdapter - Программирование Android
Хочу реализовать, чтобы при keydown элемент списка менял цвет фона, а при keyup возвращался в исходное положение, и в то же время выполнял...

ArrayAdapter вылет на clear и add - Программирование Android
Приветствую! Вылет на clear. Если эту строку закоментить то вылет на add. В чем может быть проблема? import java.io.File; ...

Кастомный ArrayAdapter для Spinner - Программирование Android
Создал свой адаптер. Привязал его к списку Spinner. Получил идентификатор выбранной записи. Ну вроде бы как получается в каждом элементе...

Выкидывает NullPointerException при заполнении данных через ArrayAdapter - Программирование Android
Заполняю данные из массива Food.foods с помощью ArrayAdapter в ListView макета activity_food_category.xml. При заполнении выкидывает ошибку...

Как настроить текстуры - Программирование Android
Есть текстура, нужно сделать повторящиеся текстуры для проги(по горизонтали и вертикали как в html,css). Буду рад!


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

Или воспользуйтесь поиском по форуму:
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99
21.08.2013, 12:23  [ТС]     Как правильно настроить ArrayAdapter? #17
Разобрался, на самом деле мне надо было реализовать переключение между активностями с помощью бокового меню, вообщем смотрел не в то место кода, решение пришло посмотрев https://github.com/StevenRudenko/ActionsContentView, и безо всяких Sherlock'ов.
Yandex
Объявления
21.08.2013, 12:23     Как правильно настроить ArrayAdapter?
Ответ Создать тему
Опции темы

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