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

Не могу разобраться с потоками - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android TextView выходит за границы экрана http://www.cyberforum.ru/android-dev/thread830683.html
Здравствуйте. Как правильно указать параметры width/height, чтобы Текст внутри TextView не вылазил за границы экрана и переносился на следующую строку? Я уже пробовал мыслить разумно, затем взял бубен и это не помогло. Текст тупо выходит за границы и пропадает.Провобовал добавлять после присваивания 2ой строчки "\n" и Текст в 3ей TextView переносился, но все еще не влазил. Есть мысля, что высота...
Android Информация и совет Для Android так же как и для IOS программировать надо на Objective-C/C ? Можете подсказать книгу по Objective-C с примерами и т.д. желательно на русском, на английском тоже пойдет? И какой компилятор лучше использовать? http://www.cyberforum.ru/android-dev/thread830500.html
Android Обмен данными между активити
проблема такая есть активити которому должен вернуться результат после работы другого активити. Все бы хорошо но вот в чем проблема , главное активити посылает запрос на результат к другому активити, это активити является активити с табами внутри табов есть свои активити ну т.е tab.setContent(new Intent(this, TabAllSong.class)); что вроде этого, дак вот как мне вернуть результат активити...
Как хранятся карты 2D игр? Android
Например есть игра типа "Марио". Где хранить карту? Как загружать?
Android Возможно ли разрабатывать игры без движков, фреймворков? http://www.cyberforum.ru/android-dev/thread830424.html
На делают игры чтоб не тратить много времени?
Android Как сделать чтобы listview обновлялось каждый секунд Я хочу чтобы тред каждую секунду вычитал 5 из каждого элемента listview .но числа из listview не обновляется через thread. package com.example.timerimport android.app.Activity; import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class... подробнее

Показать сообщение отдельно
JIyrApy
31 / 31 / 1
Регистрация: 22.08.2010
Сообщений: 243
07.04.2013, 20:56  [ТС]     Не могу разобраться с потоками
Вот основная реализация класса активности. Еще хочу добавить, что в эту активность могут возвращаться из др активностей либо по методу finish() дочерней активности, либо по прямой загрузке через интент с указанием этой активности.
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
private ListView collectionList;
    Context context;
    private ArrayList<MyCollections> collectionItems;
    private CollectionItemAdapter aa;
    
    public CollectorDBAdapter collectorDBAdapter;
    Cursor collectionListCursor;
        ProgressDialog progressUpd;
 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        context=getApplicationContext();        
        collectionList=(ListView)findViewById(R.id.collectionList);     
        
        // создаем соединение с БД
        collectorDBAdapter = new CollectorDBAdapter(this);
            collectorDBAdapter.open();     
        collectionItems = new ArrayList<MyCollections>();       
                int resID=R.layout.collectionlist;
               // адаптер для привязывания к ListView
              aa = new CollectionItemAdapter(this, resID, collectionItems);
              // Привяжите адаптер с массивом к ListView.
             collectionList.setAdapter(aa);
        
        // обрабатываем нажатие на элемент списка
        
              collectionList.setOnItemClickListener(new OnItemClickListener() {
        @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                final MyCollections curC = aa.getItem(position);
                Intent intent = new Intent(Collector.this, TabCol.class);
                intent.putExtra("curId",curC.getIdx());
                intent.putExtra("typeC", 1);
                startActivity(intent);
 
            }
            
        });
        registerForContextMenu(collectionList);
        collectionList.setFastScrollEnabled(true);
    }
 
 
     protected void onResume() {
        
        super.onResume();
    
                 new newListTask().execute(new Void[]{});
        if(collectionListCursor.getCount()<=0){
            // иначе выводим сообщение о пустом списке и предлагаем добавить новую коллекцию
            emptyCollection();
        }
        
    }
 
 
void getProgressUpd(CharSequence stt){
        progressUpd = new ProgressDialog(this);
                 progressUpd.setCanceledOnTouchOutside(false);
        progressUpd.setCancelable(false);
        progressUpd.setTitle(R.string.app_name);
        progressUpd.setMessage(stt);
        progressUpd.show();
    }
    class newListTask extends AsyncTask<Void, Void, Void>{
 
 
        @Override
        protected void onPreExecute() {
            collectionListCursor = collectorDBAdapter.getAllCollectionsItemsCursor();
            getProgressUpd(getText(R.string.updatinglist));
        }
 
        @Override
        protected Void doInBackground(Void... params) {
 
            collectionItems.clear();
            if (collectionListCursor.moveToFirst()){
 
                do {
                    String title = collectionListCursor.getString(collectionListCursor.getColumnIndex(CollectorDBAdapter.TABLE_COLLECTIONS_TITLE));
                    long created = collectionListCursor.getLong(collectionListCursor.getColumnIndex(CollectorDBAdapter.TABLE_COLLECTIONS_CREATION_DATE));
                    long update = collectionListCursor.getLong(collectionListCursor.getColumnIndex(CollectorDBAdapter.TABLE_COLLECTIONS_UPDATE_DATE));
                    long idx = collectionListCursor.getLong(collectionListCursor.getColumnIndex(CollectorDBAdapter.TABLE_COLLECTIONS_ID));
                    String descdesc = collectionListCursor.getString(collectionListCursor.getColumnIndex(CollectorDBAdapter.TABLE_COLLECTIONS_DESCRIPTION));
                    MyCollections newItem = new MyCollections(title, idx, new Date(created), new Date(update), descdesc);
                    collectionItems.add(newItem);
                    publishProgress(new Void[]{});
 
 
                } while(collectionListCursor.moveToNext());
 
             }
            
            return null;
        }
        
 
 
        @Override
        protected void onPostExecute(Void result) {
 
            aa.notifyDataSetChanged();
            progressUpd.dismiss();
        
                        
        }
        
    }
Проблема в том, что иногда появляется ошибка при возвращении в эту активность
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2130968678, class android.widget.ListView) with Adapter(class com.app.collector.CollectionItemAdapter)]
Что может быть не так?
 
Текущее время: 06:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru