Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
kashichishi
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
1

Работа с Picasso в Asynctask

13.08.2017, 18:39. Просмотров 340. Ответов 9
Метки нет (Все метки)

Есть приложение , нужно вывести изображение на imageview из интернета (решил юзать picasso ибо проще) .Есть как минимумм 2 активити:mainactivity и rec_activity (тут и происходит вывод изображения) .Использовать picasso могу только в AssyncTask (необходимость).Собственно приложение запускается , но при переходи на 2ое активити , приложение кидает обратно на майнактивити.И так циклично. Собственно код
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
package com.example.root.yaalkashfree;
 
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
import static com.example.root.yaalkashfree.R.layout.activity_rec;
 
public class rec extends AppCompatActivity {
    public TextView name_tv;
    public TextView rec_tv;
    public Button get_rec_tv;
    public Button like_btn;
    public ImageView img_iv;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(activity_rec);
        name_tv = (TextView) findViewById(R.id.name);
        rec_tv = (TextView) findViewById(R.id.cons);
        get_rec_tv = (Button) findViewById(R.id.takerec);
        like_btn = (Button) findViewById(R.id.like);
        img_iv = (ImageView) findViewById(R.id.img);
        ass async_thread = new ass();
        async_thread.execute();
 
 
    }
 
 
    class ass extends AsyncTask<Void, Void, Void> {
        public int id;
        public String name;
        public String about;
        public String rec;
        public String img;
        public String composition;
        public String json_text;
        public Document doc;
 
 
        protected void onPreExecute() {
 
        }
 
 
        protected Void doInBackground(Void... params) {
 
            try {
                doc = Jsoup.connect("http://develcool.p-host.in/").get();
 
            } catch (IOException e) {
                e.printStackTrace();
            }
            json_text = doc.text();
 
            return null;
        }
 
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
 
            try {
                JSONObject json = new JSONObject(json_text);
                name = json.getString("name");
                img = json.getString("img");
                rec = json.getString("reccept");
                about = json.getString("about");
                composition = json.getString("composition");
            } catch (JSONException e) {
                e.printStackTrace();
            }
 
            name_tv.setText(name);
            rec_tv.setText(composition);
           Picasso.with(rec.this).load(img).resize(100,100).into(img_iv);
        }
    }
 
}
Как можно использовать еще Picasso в AsyncTask , точнее как правильно? Или можно вытащить переменную img за пределы класса , что бы использовать в onCreate?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2017, 18:39
Ответы с готовыми решениями:

Работа с AsyncTask
Попробовал использовать AsyncTask и возник вопрос. У меня есть несколько ф-й, которые парсят...

Работа с потоками (AsyncTask)
Здравствуйте. Мне нужно отослать post запрос на сервер, но так как грузить GUI нельзя (что и...

Picasso
Здравствуйте, уважаемые участники форума! Снова я со своим Picasso! Итак, на этот раз у меня вот...

Picasso не загружает фото
Я получаю JSON в котором хранятся ссылки на изображения. Пробую загрузить их через picasso, и они...

Для чего делать Resize при использовании Picasso
Почему нужно иногда использовать resize() когда загружаешь изображения при помощи Picasso? Почему...

9
ExFau$t
724 / 598 / 148
Регистрация: 08.05.2012
Сообщений: 2,921
13.08.2017, 21:17 2
Где в этом, язык не поворачивается сказать, "коде" переход куда-то там, где "код" другой активити?
1
kashichishi
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
13.08.2017, 22:34  [ТС] 3
Так это код и есть 2ого активити , на майн активити ничего интересного
0
Mail-up
30 / 28 / 8
Регистрация: 07.01.2017
Сообщений: 205
13.08.2017, 22:48 4
Так между делом, имена классов принято писать с большой буквы(
0
kashichishi
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
13.08.2017, 23:19  [ТС] 5
Хорошо , буду писать с большой , но проблему это не решает
0
ExFau$t
724 / 598 / 148
Регистрация: 08.05.2012
Сообщений: 2,921
13.08.2017, 23:20 6
Нет кода - нет проблем.
0
kashichishi
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
13.08.2017, 23:34  [ТС] 7
А конструктива к Вашей критике можно? Объяснить что да как , что лучше переделать. Критиковать все умеют
0
Mail-up
30 / 28 / 8
Регистрация: 07.01.2017
Сообщений: 205
13.08.2017, 23:38 8
Какой конструктив если даже непонятно о чем речь.
Кусок вырезанный как сказали - язык не поворачивается сказать#кода
Больше кода надо показывать. Больше. Не стесняйтесь. Вам же надо а не нам.
0
kashichishi
1 / 0 / 0
Регистрация: 02.02.2016
Сообщений: 57
14.08.2017, 07:02  [ТС] 9
Окей.nMainActivity

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
package com.example.root.yaalkashfree;
 
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
 
public class MainActivity extends AppCompatActivity {
 
    public Button just_Drink_btn;
    public Button about_btn;
    public Button exit_btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        just_Drink_btn = (Button) findViewById(R.id.drink);
        about_btn = (Button) findViewById(R.id.about);
        exit_btn = (Button) findViewById(R.id.exit);
 
        just_Drink_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this , rec.class);
                startActivity(i);
            }
        });
        about_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent q = new Intent(MainActivity.this , about.class);
                startActivity(q);
            }
        });
        exit_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                android.os.Process.killProcess(android.os.Process.myPid());
            }
        });
 
 
    }
}
activity_rec(rec.java)
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
package com.example.root.yaalkashfree;
 
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import java.io.IOException;
import static com.example.root.yaalkashfree.R.layout.activity_rec;
 
public class rec extends AppCompatActivity {
    public TextView name_tv;
    public TextView rec_tv;
    public Button get_rec_tv;
    public Button like_btn;
    public ImageView img_iv;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(activity_rec);
        name_tv = (TextView) findViewById(R.id.name);
        rec_tv = (TextView) findViewById(R.id.cons);
        get_rec_tv = (Button) findViewById(R.id.takerec);
        like_btn = (Button) findViewById(R.id.like);
        img_iv = (ImageView) findViewById(R.id.img);
        ass async_thread = new ass();
        async_thread.execute();
        
 
    }
 
 
    class ass extends AsyncTask<Void, Void, Void> {
        public int id;
        public String name;
        public String about;
        public String rec;
        public String img;
        public String composition;
        public String json_text;
        public Document doc;
 
 
        protected void onPreExecute() {
 
        }
 
 
        protected Void doInBackground(Void... params) {
 
            try {
                doc = Jsoup.connect("http://develcool.p-host.in/").get();
 
            } catch (IOException e) {
                e.printStackTrace();
            }
            json_text = doc.text();
 
            return null;
        }
 
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
 
            try {
                JSONObject json = new JSONObject(json_text);
                name = json.getString("name");
                img = json.getString("img");
                rec = json.getString("reccept");
                about = json.getString("about");
                composition = json.getString("composition");
            } catch (JSONException e) {
                e.printStackTrace();
            }
 
            name_tv.setText(name);
            rec_tv.setText(composition);
            Picasso.with(rec.class).load(img).resize(100,100).into(img_iv);
        }
    }
 
}
0
Pablito
2818 / 2240 / 756
Регистрация: 12.05.2014
Сообщений: 7,836
Завершенные тесты: 1
14.08.2017, 09:44 10
в логах должна быть ошибка
0
14.08.2017, 09:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2017, 09:44

Загрузка картинок Picasso из дискового кэша, когда нет интернета
Подскажите как можно при помощи Picasso реализовать загрузку картинок в фон активити, когда нет...

При загрузке большого количества картинок библиотекой Picasso заканчивается память
В общем делаю приложение, которое должно выводить посты пользователя. В этих постах есть картинки,...

AsyncTask и get()
Создаю асинхронный процесс, где в onPreExecute() запускаю анимированный ProgressDialog. После...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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