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

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

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

Подгрузка данных в TabSlider - Программирование Android

16.07.2015, 23:38. Просмотров 190. Ответов 0
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста решить проблему. У меня есть класс HomeScreen и HomeScreenFragment. Дело вот в чем, в первом фрагменте у меня в список ListView должны подгружаться данные из БД, но делать они этого не хотят. Для этого я использую SimpleAdapter, но вот в строке:
Java
1
sAdapter = new SimpleAdapter(this, data, R.layout.view_list_product, from, views);
вылетает ошибка, ругается на аргумент this. Не получается это исправить. И можно сразу пару наводящих вопросов.
1) Как мне выделенный элемент из ListView одного фрагмента, переслать в ListView другого фрагмента и отобразить?
2) Можно ли таким образом передать выбранный элемент в Spienner для передачи во фрагмент, чтобы его значение использовать в запросе.
Java
1
2
3
4
5
6
7
 
final String myCity = aa.getItem(position);
Context context = getApplicationContext();
Intent intent = new Intent(context,HomeScreen.class);
intent.putExtra("id",myCity);
startActivity(intent);
finish();
Ниже классы HomeScreen и HomeScreenFragment
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
package com.example.deadrayder_1.shopperguide;
 
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.Log;
 
 
public class HomeScreen extends FragmentActivity {
 
    static final String TAG = "MyLogs";
    static final int PAGE_COUNT = 3;
 
    ViewPager mViewPager;
    PagerAdapter mPagerAdapter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_screen);
 
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
        mViewPager.setAdapter(mPagerAdapter);
 
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
 
            }
 
            @Override
            public void onPageSelected(int position) {
                Log.d(TAG,"onPageSelected, position = " + position);
            }
 
            @Override
            public void onPageScrollStateChanged(int state) {
 
            }
        });
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_home_screen, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    private class MyFragmentPagerAdapter extends FragmentPagerAdapter{
 
        public MyFragmentPagerAdapter(FragmentManager fm){
            super(fm);
 
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            if (position == 0)
            return "Товары";
            else if (position == 1)
                return "Корзина";
            else
                return "Акции";
        }
 
        @Override
        public Fragment getItem(int position) {
            return HomeScreenFragment.newInstance(position);
        }
 
        @Override
        public int getCount() {
            return PAGE_COUNT;
        }
    }
}
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
112
package com.example.deadrayder_1.shopperguide;
 
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
 
 
/**
 * A placeholder fragment containing a simple view.
 */
public class HomeScreenFragment extends Fragment {
 
 
    SimpleAdapter mSimpleAdapter;
    ListView mList;
 
    static final String ARGUMENT_PAGE_NUMBER = "arg_page_number";
 
    int pageNumber;
    int backColor;
 
    static HomeScreenFragment newInstance(int page) {
        HomeScreenFragment homefragment = new HomeScreenFragment();
        Bundle arguments = new Bundle();
        arguments.putInt(ARGUMENT_PAGE_NUMBER, page);
        homefragment.setArguments(arguments);
        return homefragment;
    }
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        pageNumber = getArguments().getInt(ARGUMENT_PAGE_NUMBER);
 
 
        if (pageNumber == 1){
            Random rnd = new Random();
            backColor = Color.argb(40, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
        }
 
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view;
        if (pageNumber == 0){
            view = inflater.inflate(R.layout.fragment_product,null);
            ResultSet rs;
            String [] cityArr = new String[39];
 
            List<Map<String,String>> data = null;
            data = new ArrayList<Map<String,String>>();
 
            int i = 0;
            try {
                Statement statement = MainActivity.connect.createStatement();
                rs = statement.executeQuery("select distinct City_name\n" +
                        "from EXPORT_TABLE");
                while (rs.next())
                {
                    Map<String, String> mData = new HashMap<String, String>();
                    mData.put("A", rs.getString("Product_name"));
                    mData.put("B", rs.getString("shop_name"));
                    mData.put("C", rs.getString("Price"));
                    mData.put("D", rs.getString("address"));
                    data.add(mData);
                    cityArr[i] = rs.getString("City_name");
                    i++;
 
                }
                mList = (ListView) view.findViewById(R.id.list_products);
                String [] from = {"A", "B","C","D"};
                int[] views = {R.id.txt_product_name,R.id.txt_shop_name, R.id.txt_price, R.id.txt_address};
                ArrayAdapter sAdapter;
                sAdapter = new SimpleAdapter(this, data, R.layout.view_list_product, from, views);
               // final ArrayAdapter<String> aa = new ArrayAdapter<String>(getApplicationContext(), R.layout.fragment_product,cityArr);
              //  mList.setAdapter(aa);
 
            } catch (SQLException e) {
                e.printStackTrace();
            }
 
        }
        else {
            view = inflater.inflate(R.layout.fragment,null);
            TextView tv = (TextView) view.findViewById(R.id.tvPage);
            tv.setText("да это же страница!!");
            tv.setBackgroundColor(backColor);
        }
        return  view;
    }
}
P.S. Также, если создать ArrayAdapter, то getApplicationContext() выделяется красным.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 23:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подгрузка данных в TabSlider (Программирование Android):

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

Медленная подгрузка UI - Программирование Android
Добрый день! Есть такой кейс. Две активити. Из одной можно запустить другую. В обеих есть свой TabLayout. Так вот, как исправить такой...

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

Подгрузка разной разметки - Программирование Android
Как можно подгружать разную разметку (layout) при определённых условиях? т.е иногда использовать не (R.layout.fragment_screen), а например...

Быстрая подгрузка картинок - Программирование Android
Здравствуйте, написал маленькую прожку, грубо говоря что при нажатии на кнопку меняется картинка ( фон ), но т.к. картинка весит 0.6мб то...

OpenGL ES 2.0: Асинхронная подгрузка сцены - Программирование Android
Здравствуйте! Никак не могу разобраться, как на Android в OpenGL ES 2.0 динамически сменить отрисовываемые сцены. То есть, у меня в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2015, 23:38
Привет! Вот еще темы с ответами:

Подгрузка еще информации из базы MYSQL - Программирование Android
Добрый день Вот у меня сейчас выводится полный список категорий. Вот как сделать чтобы к примеру первый вывод был 10 разделов...

Подгрузка данных из базы mysql с последующей генерацией html и подстановкой извлеченных данных - PHP
на сайте есть форма подачи заявки. после подачи , на главной странице должно отображаться фото и свойства заявленного. данные из формы...

Подгрузка данных - PHP
Есть файл .php, в нём блок poems-list, в который должны грузиться данные из таблицы. &lt;div class=&quot;poems-list&quot; &gt; &lt;?php...

Подгрузка данных - JavaScript
Здравствуйте) у меня появился вопрос, как можно сделать и через что было бы лучше сделать подгрузку данных из БД? Например, ввожу фио и...


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

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

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