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

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

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

Ошибка при конвертации класса Activity в Fragment (SherlockFragment) - Программирование Android

24.08.2013, 18:53. Просмотров 659. Ответов 3
Метки нет (Все метки)

есть такой класс
Кликните здесь для просмотра всего текста
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
public class MainActivity extends Activity {
 
    LinkedList<Product> products = new LinkedList<Product>();
    SampleAdapter boxAdapter;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button btnLoadMore = new Button(this);
        btnLoadMore.setText("Load More");
        final ListView lvMain = (ListView) findViewById(R.id.lvMain);
        fillData();
        boxAdapter = new SampleAdapter(this, products);
        lvMain.addFooterView(btnLoadMore);
        lvMain.setAdapter(boxAdapter);
        btnLoadMore.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                if (SampleAdapter.count + 10 <= boxAdapter
                        .getMaxCountOfObjects()) {
                    SampleAdapter.count += 10;
                    
                    if (SampleAdapter.count + 10 > boxAdapter
                            .getMaxCountOfObjects()) {
                        SampleAdapter.count += boxAdapter.getMaxCountOfObjects() - SampleAdapter.count;;
                        Toast.makeText(MainActivity.this,
                                "All notifications showed!", Toast.LENGTH_SHORT)
                                .show();
                        lvMain.removeFooterView(btnLoadMore);
                    }
                    lvMain.setAdapter(boxAdapter);
                }
 
            }
        });
        
        Button add_new = (Button) findViewById(R.id.button1);
        add_new.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "Clicked", Toast.LENGTH_SHORT).show();
                // TODO Auto-generated method stub
                products.addFirst(new Product("New not + ", "24.08.13", R.drawable.ic_launcher));
                lvMain.setAdapter(boxAdapter);
                Toast.makeText(MainActivity.this, boxAdapter.getMaxCountOfObjects()+ "", Toast.LENGTH_SHORT).show();
            }
        });
    }
 
    void fillData() {
        for (int i = 1; i <= 50; i++) {
            products.add(new Product("Product " + i, "22.08.13",
                    R.drawable.ic_launcher));
        }
        Collections.reverse(products);
    }
 
}

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

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
public class NotificationTabFragment extends SherlockFragment{
    private LinearLayout ll;
    private FragmentActivity fa;
    LinkedList<Product> products = new LinkedList<Product>();
    SampleAdapter boxAdapter;
 
        
 
    /** Called when the activity is first created. */
    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        fa = super.getActivity();
        ll = (LinearLayout) inflater.inflate(R.layout.notification_fragment_tab, container, false);
        
        final Button btnLoadMore = new Button(fa);
        btnLoadMore.setText("Load More");
        final ListView lvMain = (ListView) getView().findViewById(R.id.listview1);
        fillData();
        boxAdapter = new SampleAdapter(fa, products);
        lvMain.addFooterView(btnLoadMore);
        lvMain.setAdapter(boxAdapter);
        btnLoadMore.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                if (SampleAdapter.count + 10 <= boxAdapter
                        .getMaxCountOfObjects()) {
                    SampleAdapter.count += 10;
                    
                    if (SampleAdapter.count + 10 > boxAdapter
                            .getMaxCountOfObjects()) {
                        SampleAdapter.count += boxAdapter.getMaxCountOfObjects() - SampleAdapter.count;;
                        Toast.makeText(fa,
                                "All notifications showed!", Toast.LENGTH_SHORT)
                                .show();
                        lvMain.removeFooterView(btnLoadMore);
                    }
                    lvMain.setAdapter(boxAdapter);
                }
 
            }
        });
        
        Button add_new = (Button) getView().findViewById(R.id.button1);
        add_new.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                Toast.makeText(fa, "Clicked", Toast.LENGTH_SHORT).show();
                // TODO Auto-generated method stub
                products.addFirst(new Product("New not + ", "24.08.13", R.drawable.ic_launcher));
                lvMain.setAdapter(boxAdapter);
                Toast.makeText(fa , boxAdapter.getMaxCountOfObjects()+ "", Toast.LENGTH_SHORT).show();
            }
        });
        return ll;
    }
 
    void fillData() {
        for (int i = 1; i <= 50; i++) {
            products.add(new Product("Product " + i, "22.08.13",
                    R.drawable.ic_launcher));
        }
        Collections.reverse(products);
    }
 
}

ошибка:
Кликните здесь для просмотра всего текста
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
08-24 14:27:34.805: E/AndroidRuntime(1687): FATAL EXCEPTION: main
08-24 14:27:34.805: E/AndroidRuntime(1687): java.lang.NullPointerException
08-24 14:27:34.805: E/AndroidRuntime(1687):     at com.example.aucaintouch.MenuTabFragment.onCreateView(MenuTabFragment.java:62)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:578)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:362)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.View.measure(View.java:8171)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.os.Looper.loop(Looper.java:123)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at android.app.ActivityThread.main(ActivityThread.java:4627)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at java.lang.reflect.Method.invoke(Method.java:521)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-24 14:27:34.805: E/AndroidRuntime(1687):     at dalvik.system.NativeStart.main(Native Method)
08-24 14:27:36.316: I/Process(1687): Sending signal. PID: 1687 SIG: 9
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 18:53     Ошибка при конвертации класса Activity в Fragment (SherlockFragment)
Посмотрите здесь:

Жизненный цикл Activity и Fragment при повороте - Программирование Android
Ребят запутался я совсем. Помогите разобраться. Насколько я знаю при повороте удаляется активити, а соответственно все размещенные на ней...

Fragment не отображается на Activity - Программирование Android
Здравствуйте! Помогите, пожалуйста, разобраться. Суть такая: пользователь проходит упражнение по переводу слова на другой язык, т.е....

Fragment вместо Activity - Программирование Android
Использую фрагмент вместо Activity. Но теперь методы не запускаются с фрагментов. Как можно полностью реализовать во фрагменте всё то, что...

Использование Fragment в Activity - Программирование Android
Здравствуйте, делаю модуль для регистрации юзера, она прозодит в несколько этапов, сначала вводится номер, потом личные данные, потом...

Принятие данных из Activity в Fragment - Программирование Android
Здравствуйте, Дело вот как обстоит, мне нужно приянять один стринг параметр в фрагменте для дальнейшей обработки. Пытался таким...

Передача параметров с Activity в Fragment - Программирование Android
Здравствуйте! У меня не получается передать параметры с Activity в Fragment. Я пытался сделать это следующим образом: В Activity: ...

Взаимодействие Fragment-ов через Activity (interface) - Программирование Android
Ребята гляньте пожалуйста не замыленным глазом на код. Пытаюсь понять как организовать взаимодействие фрагментов с помощью активити...

Fragment, Splash-activity, Jsoup onPostExecute - Программирование Android
Есть 2 фрагмента, собственно первый это сплеш-активити, перед запуском самого приложения: protected void onCreate(Bundle...

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

Ошибка при переходе на новое Activity - Программирование Android
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? При переходе на новое активити программа выдает ошибку и вылетает. Я...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 19:10     Ошибка при конвертации класса Activity в Fragment (SherlockFragment) #2
банальный NullPointerException в классе MenuTabFragment в строке 62.
в чем вопрос то?
SAVA93
1 / 1 / 0
Регистрация: 24.12.2011
Сообщений: 86
24.08.2013, 20:21  [ТС]     Ошибка при конвертации класса Activity в Fragment (SherlockFragment) #3
V0v1k, Извиняюсь глупо вышло.... Просто я еще не особо разбираюсь в логах с ошибками. Спасибо.
Думал что ошибка из за того что хотел изменить тип класса

Добавлено через 56 минут
V0v1k,

я не понимаю все равно в чем ошибка?
что только не перепробовал я что то не вижу это точно! но не могу понять что
вот код нового переделанного раз 5 меню на котором ошибка
Кликните здесь для просмотра всего текста
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
package com.example.aucaintouch;
 
import java.util.LinkedList;
 
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ListView;
 
import com.actionbarsherlock.app.SherlockListFragment;
 
public class MenuTabFragment extends SherlockListFragment {
 
    private FragmentActivity fa;
    private LinearLayout ll;
    LinkedList<Product> products = new LinkedList<Product>();
    SampleAdapter boxAdapter;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final ListView lvMain = (ListView) ll.findViewById(R.id.listview1);
        ll = (LinearLayout) inflater.inflate(R.layout.menu_fragment_tab, container,
                false);
        fa = super.getActivity();
        fillData();
        boxAdapter = new SampleAdapter(fa, products);
        lvMain.setAdapter(boxAdapter);
    
        return ll;
    }
    void fillData() {
            products.add(new Product("Schedule", "", R.drawable.alarm));
            products.add(new Product("Chat", "", R.drawable.chat));
            products.add(new Product("Mail", "", R.drawable.email));
            products.add(new Product("Notifications", "", R.drawable.menu));
            products.add(new Product("Options", "", R.drawable.settings));
    }
}

а вот лог ошибок
Кликните здесь для просмотра всего текста
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
08-24 16:17:28.216: E/AndroidRuntime(2092): FATAL EXCEPTION: main
08-24 16:17:28.216: E/AndroidRuntime(2092): java.lang.NullPointerException
08-24 16:17:28.216: E/AndroidRuntime(2092):     at com.example.aucaintouch.MenuTabFragment.onCreateView(MenuTabFragment.java:25)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:870)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:139)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.view.ViewPager.populate(ViewPager.java:804)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:578)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:362)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:526)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.View.measure(View.java:8171)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.os.Looper.loop(Looper.java:123)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at android.app.ActivityThread.main(ActivityThread.java:4627)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at java.lang.reflect.Method.invoke(Method.java:521)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-24 16:17:28.216: E/AndroidRuntime(2092):     at dalvik.system.NativeStart.main(Native Method)



и я не знаю нужно или нет(по моему нет) но на всякий случай я делал свой адаптер
Кликните здесь для просмотра всего текста
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
public class SampleAdapter extends BaseAdapter {
    Context ctx;
    LayoutInflater lInflater;
    LinkedList<Product> objects;
    public static int count = 10;
    
 
    SampleAdapter(Context context, LinkedList<Product> products) {
        ctx = context;
        objects = products;
        lInflater = (LayoutInflater) ctx
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
 
    @Override
    public int getCount() {
        return count;
    }
 
    public int getMaxCountOfObjects() {
        return objects.size();
    }
 
    @Override
    public Object getItem(int position) {
        return objects.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.item, parent, false);
        }
 
        Product p = getProduct(position);
 
        ((TextView) view.findViewById(R.id.tvDescr)).setText(p.name);
        ((TextView) view.findViewById(R.id.tvPrice)).setText(p.date + "");
        ((ImageView) view.findViewById(R.id.ivImg)).setImageResource(p.image);
 
        return view;
    }
 
    Product getProduct(int position) {
        return ((Product) getItem(position));
    }
 
}
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.08.2013, 20:28     Ошибка при конвертации класса Activity в Fragment (SherlockFragment) #4
у вас ll null
Yandex
Объявления
24.08.2013, 20:28     Ошибка при конвертации класса Activity в Fragment (SherlockFragment)
Ответ Создать тему
Опции темы

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