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

Подгрузка данных в TabSlider

16.07.2015, 23:38. Просмотров 236. Ответов 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() выделяется красным.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 23:38
Ответы с готовыми решениями:

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

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2015, 23:38

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

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

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


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

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

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