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

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

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

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

16.07.2015, 23:38. Просмотров 181. Ответов 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
TableLayout - чтение данных из строк, изменение данных в строках Android
Запрос данных по ID из нескольких баз данных Android
Android Подгрузка данных при достижении конца списка
Быстрая подгрузка картинок Android
Как перехватить пакет (запрос) данных при текущей передаче данных? Android
OpenGL ES 2.0: Асинхронная подгрузка сцены Android
Подгрузка еще информации из базы MYSQL Android
Медленная подгрузка UI Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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